For vs. While? Mikor melyiket?





Én for ciklust általában akkor használok, ha az egész tartományon MINDIG végig fog menni.
While-t pedig akkor, ha nem.
De ez csak az egyéni hozzáállásom, véleményem.





Más szavaival:
"The main difference between the for's and the while's is a matter of pragmatics: we usually use for when there is a known number of iterations, and use while constructs when the number of iterations in not known in advance."
Egy tömb bejárását például tipikusan for ciklussal szokás megvalósítani. Emellett a for cilkussal rögtön kapunk egy csökkenő/növekvő változót, megállási feltételt és a csökkenés/növekvés mértékét, amit a while-nál külön-külön kellene megadni.
Az olvashatóságot is növeli a helyes ciklus megválasztása.










Laciii jól írja, ennyi a különbség.
De egyébként kicserélhetőek egymásra megfelelő körültekintéssel.





A for-t általában adott számú iterációhoz használják, ez nem csak tömb bejárása pl. 20-szori ismétlés is tipikusan for ciklussal megy. A while meg egy feltétel teljesülésére várásnál kézenfekvőbb. A for átalakítható while-ra (bár én ezt nem szoktam, mert nehezebben olvasható), fordítva elég furcsa lesz for(;felt;).
A végtelen ciklus meg lehet mindkettővel, for(;;) vagy while(TRUE), a do-while-t nem láttam ilyenre használni, pedig lehetne. Megjegyzem a do-while is átalakítható while vagy for ciklusra, sokan át is alakítják. Tehát egy ciklus is elég lenne a nyelvben, ami valószínűleg a for lenne, mert az tudja a legtöbbet.
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!