Két fő csoport és három konkrét megvalósítás létezik. A számláló ciklus, amit akkor célszerű használni ha megadott számszor kell végrehajtani a ciklusmagot. A másik fajta a tesztelő ciklusok, melyek adott logikai kifejezés alapján hajtódik végre vagy sem a ciklusmag.
A klasszikus iterációs utasítások közül elsőnek az elől tesztelő változatot nézzük:
while (<feltétel>) {
utasítások;
}
Példaként nézzük a 1-100 közti számok kiíratását:
int i = 1;
while (i<=100) {
System.out.println(i);
i++;
}
Először kiértékelődik a feltétel, amennyiben igaz értéket kapunk, úgy végrehajtja a ciklusmagot, különben a while-t lezáró } utáni utasításra kerül a vezérlés. Figyelem! A while ciklus magja lehet hogy egyszer sem hajtódik végre, ugyanis ha első kiértékeléskor hamis lesz a feltétel akkor nem kerül a ciklusmagra a vezérlés!
Ha azt akarjuk hogy a ciklusmag legalább egyszer lefusson, akkor érdemes a hátul tesztelő ciklust választani:
do {
utasítások;
} while (feltétel);
Nézzük a 1-100 kiírató példát:
int i = 0;
do {
i++;
System.out.println(i)
}
while (i<=100)
Ebben az esetben a ciklusmag egyszer biztosan végrehajtásra kerül, majd utána kerül kiértékelésre a feltétel. Ha igaz értéket ad akkor újra a ciklusmagra kerül a vezérlés és így tovább.
A feltétel tehát a ciklusban maradás feltétele (mind elöl mind hátul tesztelő esetben. Nem minden programozási nyelvben van így)!
A while ciklusoknál mindig figyeljünk arra hogy a ciklust vezérlő feltétel hogyan és mitől változik. Pl. ha nem növeltük volna az i értékét, akkor végtelen ciklusba kerültünk volna!
A számláló ciklust a Java-ban is a for utasítással tudjuk megadni.
for(<ciklusváltozó>;<ciklusfeltétel>;<léptetés>) {
<utasítások>;
}
Például ha ki akarjuk íratni a számokat 1-től 100-ig, akkor azt a következőképp fogalmazhatjuk meg:
for(int i = 1;i<=100;i++){
System.out.println(i);
}
Mit látható a ciklusfejben definiáltuk a ciklusváltozót (int i). Ezzel egyértelműen megadtuk, hogy az i változó az csak és kizárólag a ciklusban használatos, a ciklusból kilépve már nem elérhető.
A ciklusok szervezésével kapcsolatosan még meg kell említeni még két utasítást.
A ciklusmagban a break utasítás hatására a vezérlés azonnal átadódik a ciklus utáni első utasításra. Tehát segítségével feltétel nélkül kiugrunk a ciklusmagból és befejezzük a ciklus végrehajtását is.
A ciklusmagban a continue utasítás hatására a vezérlés a ciklusfejre kerül és kiértékelődik a ciklusfeltétel. Tehát újra megvizsgálásra kerül hogy folytatjuk-e a ciklusmagot vagy sem.
Nincsenek megjegyzések:
Megjegyzés küldése