1. A hurkok összehasonlítása: forvswhile
A whileciklus bárhol használható, ha egy utasítást vagy utasításcsoportot többször kell végrehajtani. De az összes lehetséges forgatókönyv közül érdemes kiemelni egyet.
Arról a helyzetről beszélünk, amikor a programozó (a program készítője) előre tudja, hogy a ciklust hányszor kell végrehajtani. Ezt általában úgy kezelik, hogy deklarálnak egy speciális számlálóváltozót, majd 1a ciklus minden iterációjával növelik (vagy csökkentik) a változót.
Úgy tűnik, minden úgy működik, ahogy kell, de nem túl kényelmes. A ciklus előtt beállítjuk a számlálóváltozó kezdeti értékét. Ezután az állapotban ellenőrizzük, hogy elérte-e már a végső értéket. De általában a huroktest legvégén változtatjuk az értéket.
És mi van, ha a hurok teste nagy? Vagy ha több egymásba ágyazott hurkunk van? Általában ezekben az esetekben kívánatos, hogy a számlálóváltozókra vonatkozó összes információt egy helyen gyűjtsük össze. És ezért van a forciklus a Java-ban. Nem is tűnik túl bonyolultnak:
for (statement 1; condition; statement 2)
{
block of statements
}
A whileciklusnak csak egy feltétele van zárójelben, de a forciklus két, pontosvesszővel elválasztott utasítást ad hozzá.
A valóság egyszerűbb, mint amilyennek hangzik: a fordító egy forciklust normál whilehurokká alakít, így:
statement 1;
while (condition)
{
block of statements
statement 2;
}
Vagy ami még jobb, mutassuk meg ezt egy példával. Az alábbi két kódrészlet azonos.
| 1.opció | 2. lehetőség |
|---|---|
|
|
Csak egy helyre gyűjtöttük az összes kódot, amely a számlálóváltozóhoz tartozik i.
Egy forciklusban az 1. utasítás csak egyszer kerül végrehajtásra, mielőtt maga a ciklus elkezdődik. Ez jól látható a második kódrészletben
a 2. utasítás ugyanannyiszor kerül végrehajtásra, mint a ciklus törzse, és minden alkalommal, miután a ciklus teljes törzse végrehajtásra került
2. A forhurok használatának helye
A forciklus valószínűleg a Java leggyakrabban használt ciklustípusa. Mindenhol használják, a programozóknak csak áttekinthetőbb és kényelmesebb, mint a whilehurok. Gyakorlatilag minden whilehurok hurokká alakítható for.
Példák:
| míg hurok | hurokhoz |
|---|---|
|
|
|
|
|
|
|
|
|
|
Ügyeljen az utolsó példára. Hiányoznak a hurokszámlálóval való munkavégzésre vonatkozó utasítások. Nincs számláló és nincs nyilatkozat.
Egy forciklusban a Java lehetővé teszi a "számláló inicializálására vonatkozó utasítás" és a "számláló frissítésére vonatkozó utasítás" elhagyását. Még a ciklusfeltételt meghatározó kifejezés is elhagyható.
for3. A hurok használatának árnyalatai
forEgy fontos pont a ciklusok és breakaz utasítások használatával kapcsolatban continue.
A ciklusban breaklévő utasítás forugyanúgy működik, mint a ciklusban while– azonnal befejezi a ciklust. Az continueutasítás átugorja a ciklus törzsét, de nem statement 2(ami megváltoztatja a ciklusszámlálót).
Vessünk még egy pillantást a hurkok forés whilea hurkok kapcsolatára.
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
Ha egy utasítást continueforciklusban hajtanak végre , akkor az utasításblokk többi része kimarad, de a 2. utasítás (amely a forciklus számlálóváltozójával működik) továbbra is végrehajtódik.
Térjünk vissza példánkhoz a 7-tel osztható számok kihagyásával.
| Ez a kód örökre hurkolni fog | Ez a kód jól fog működni |
|---|---|
|
|
A whileciklust használó kód nem fog működni – i soha nem lesz nagyobb 7-nél. De a forciklust tartalmazó kód jól fog működni.
4. Összehasonlítás a ciklusokhoz: Java vs Pascal
Mellesleg Pascalnak is van Forciklusa. Általánosságban elmondható, hogy lényegében minden programozási nyelvnek van egy. De Pascalban ez szuper egyértelmű. Példák:
| Pascal | Jáva |
|---|---|
|
|
|
|
|
|
GO TO FULL VERSION