1. A hurkok összehasonlítása: for
vswhile
A while
ciklus 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 1
a 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 for
ciklus a Java-ban. Nem is tűnik túl bonyolultnak:
for (statement 1; condition; statement 2)
{
block of statements
}
A while
ciklusnak csak egy feltétele van zárójelben, de a for
ciklus két, pontosvesszővel elválasztott utasítást ad hozzá.
A valóság egyszerűbb, mint amilyennek hangzik: a fordító egy for
ciklust normál while
hurokká 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 for
ciklusban 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 for
hurok használatának helye
A for
ciklus 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 while
hurok. Gyakorlatilag minden while
hurok 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 for
ciklusban 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ó.
for
3. A hurok használatának árnyalatai
for
Egy fontos pont a ciklusok és break
az utasítások használatával kapcsolatban continue
.
A ciklusban break
lévő utasítás for
ugyanúgy működik, mint a ciklusban while
– azonnal befejezi a ciklust. Az continue
utasí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 while
a 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 continue
for
ciklusban hajtanak végre , akkor az utasításblokk többi része kimarad, de a 2. utasítás (amely a for
ciklus 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 while
ciklust használó kód nem fog működni – i soha nem lesz nagyobb 7-nél. De a for
ciklust tartalmazó kód jól fog működni.
4. Összehasonlítás a ciklusokhoz: Java vs Pascal
Mellesleg Pascalnak is van For
ciklusa. Á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