1. Hurok az életünkben
Életünk nagyon gyakran megkívánja, hogy ugyanazokat a cselekedeteket sokszor végezzük el. Tegyük fel például, hogy be kell szkennelnem egy sok oldalból álló dokumentumot. Ismételjük meg újra és újra ugyanazt az eljárást:
- Helyezze az első oldalt a szkennerre
- Nyomja meg a beolvasás gombot
- Helyezze a következő oldalt a szkennerre
Ezt nehéz manuálisan megtenni. Jó lenne, ha ez a folyamat valahogy automatizálható lenne.
Vagy vegyünk egy másik példát: tegyük fel, hogy a beérkező levelemben lévő összes olvasatlan e-mailt spamként szeretném megjelölni. Réges-régen minden egyes e-mailt egyenként ki kellett választanom, és spamként kellett megjelölnöm.
De a programozók lusták, ezért már régen automatizálták ezt a folyamatot: most egyszerűen kiválasztja a betűk listáját, és rákattint a "megjelölés spamként" gombra, majd az e-mail kliens végigfut a listán, és minden e-mailt a spam mappába helyez.
Mit mondhatunk itt? Rendkívül kényelmes, ha egy számítógép vagy program több száz vagy több ezer monoton műveletet tud végrehajtani egyetlen kattintással. És most megtanulod, hogyan kell ezt csinálni.
2. while
hurok
Az if-else utasítás jelentősen kibővítette programozási lehetőségeinket, lehetővé téve olyan programok írását, amelyek különböző helyzetekben különböző műveleteket hajtanak végre. De van még egy dolog, ami egy nagyságrenddel erősebbé teszi programjainkat – a hurkok .
A Java 4 féle hurokkal rendelkezik: while
, for
, for-each
és do-while
. Most ezek közül a legelsőbe fogunk beleásni.
A while
hurok nagyon egyszerű. Csak két részből áll: egy feltételből és egy huroktörzsből . A ciklustörzs újra és újra végrehajtásra kerül mindaddig, amíg a feltétel teljesül true
. Általában a while
hurok így néz ki:
while (condition)
statement;
while (condition)
{
block of statements
}
Ez nagyon egyszerű. Az utasítás vagy utasításblokk újra és újra végrehajtásra kerül, amíg a ciklusfeltétel egyenlő true
.
Ez így működik: először az állapotot ellenőrizzük. Ha igaz, akkor a ciklustörzs végrehajtásra kerül (az utasítás vagy utasításblokk ). Ezután a feltétel újra ellenőrzésre kerül, és a ciklustörzs ismét végrehajtásra kerül. És így tovább, amíg a feltétel hamis lesz.
Ha a feltétel mindig igaz , akkor a program soha nem fog leállni. Végleg beragad a hurokba.
Ha a feltétel hamis az első ellenőrzéskor , akkor a ciklus törzse még egyszer sem kerül végrehajtásra.
3. Példák hurkokra
Íme néhány gyakorlati példa a hurkok működésében.
Kód | Magyarázat |
---|---|
|
5 sor jelenik meg a képernyőn:
|
Kód | Magyarázat |
---|---|
|
10 sor jelenik meg a képernyőn:
|
Kód | Magyarázat |
---|---|
|
A program beolvassa a számokat a billentyűzetről, amíg számokat ír be. |
Kód | Magyarázat |
---|---|
|
A program vég nélkül kinyomtatja a levelet C a képernyőn. |
Kód | Magyarázat |
---|---|
|
A program beolvassa a sorokat a billentyűzetről
amíg |
Az előző példában a equals()
metódus a karakterláncok összehasonlítására szolgál. Ha a karakterláncok egyenlőek, a függvény a következőt adja vissza true
. Ha a karakterláncok nem egyenlőek, akkor visszatér a false
.
4. Hurok a hurkon belül
Ahogy megismerte a feltételes utasításokat, észrevette, hogy több feltételes utasítás kombinálásával összetett logikát is megvalósíthat. if
Más szóval, egy utasításon belüli utasítás használatával if
.
Ugyanezt megteheti hurkokkal is. Ha egy hurkon belüli ciklust szeretne írni, akkor a második ciklust az első ciklus törzsébe kell írnia. Valahogy így fog kinézni:
while (condition for outer loop)
{
while (condition for inner loop)
{
block of statements
}
}
Nézzünk három feladatot.
1. feladat . Tegyük fel, hogy olyan programot akarunk írni, ami Mom
4-szer megjeleníti a szót a képernyőn. A hurok pontosan az, amire szükségünk van. És a kódunk valahogy így fog kinézni:
Kód | Magyarázat |
---|---|
|
4 sor jelenik meg a képernyőn:
|
2. feladat . Olyan programot szeretnénk írni, amely A
egyetlen sorban 5 betűt jelenít meg. Ehhez ismét szükségünk van egy hurokra. Így fog kinézni a kód:
Kód | Magyarázat |
---|---|
|
A helyett a -t println() fogjuk használni print() . Ellenkező esetben minden betű A külön sorba kerülne. A képernyő kimenete a következő lesz:
|
3. feladat . Egy s betűből álló téglalapot szeretnénk megjeleníteni A
. A téglalapnak 4 sorból 5 oszlopból kell állnia. Ennek megvalósításához szükségünk van egy beágyazott hurokra. Egyszerűen vesszük az első példánkat (azt, ahol 4 sort adunk ki), és lecseréljük az egyik sor kimeneti kódját a második példa kódjára.
Kód | Magyarázat |
---|---|
|
A külső hurok lila. A változó segítségével n megszámolja a ciklus iterációinak számát. A belső hurok zöld. A változót használja m a ciklusiterációk számának megszámlálására. A belső ciklus befejezése után a kurzort kifejezetten a következő sorra kell mozgatnunk. Ellenkező esetben a program által kinyomtatott összes betű egy sorba kerül. A képernyő kimenete a következő lesz:
|
A külső és a belső ciklusnak különböző változókat kell használnia a ciklusiterációk számának megszámlálásához. A parancsot a belső ciklus után is hozzá kellett adnunk System.out.println()
, mivel ez a ciklus az A
s betűt jeleníti meg ugyanabban a sorban. Ha a sorban lévő betűk megjelennek, valakinek új sorra kell mozgatnia a kurzort.
5. Java és Pascal hurkok összehasonlítása
Sokan tanultátok Pascalt a középiskolában. Hogy könnyebben megértse az itteni anyagot, vessen egy pillantást a while
Pascal és Java nyelven írt ciklusok összehasonlítására. Ha nem ismered a Pascalt, akkor hagyd ki ezt a részt.
Pascal | Jáva |
---|---|
|
|
|
|
|
|
|
|
|
|
GO TO FULL VERSION