Mi a különbség a while és a for ciklus között?
Értem én, hogy a for ciklus sok nyelven automatikusan lépteti a ciklusváltozót, meg csinál magának stb. De amit észrevettem, hogy a while ugyanezt tudja, csak ott a legtöbb esetben kicsit manuálisabb a dolog.
És azt se értse félre senki, mert olyan is volt már, hogy muszáj volt while ciklust használnom for helyett, de az ellentétéről még nem hallottam.
Szóval van-e olyan eset, amikor MUSZÁJ for ciklust használni a while helyett, vagy a for ciklus csak azért lett teremtve, hogy ne kelljen mindig annyit írkálni?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Igen kényelmi szempont, de olyan eset sincs, hogy muszáj for helyett while.
for(; ami while ba menne ;) == while ciklus
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
A for az szamlalos, a while pedig nem. Az, hogy te a whilet hasznalod szamlalos helyett csak is a te hibad.
Olyan nincs, hogy muszaj whilet, a forban is meg lehet adni ugyanugy feltetelt.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
A while ciklus
- kezdőfeltételes (addig fut, amíg a feltétel igaz)
- elől tesztelő (előbb ellenőrzi, hogy teljesül-e a feltétel, és csak ezután hajtja végre a ciklusmagot)
Szintaktika C-szerű nyelvekben:
while (logikai_kifejezés) utasítás;
while (logikai_kifejezés) vezérlési_szerkezet
while (logikai_kifejezés) {utasítás; utasítás;...}
Ezt akkor használjuk, ha valamit addig kell futtatni, amíg egy adott feltétel teljesül.
A for ciklus nyelvtől függően lehet
- előírt lépésszámú ciklus (pl. Pascal nyelvben - arról ismered fel, hogy nincs logikai feltétele)
- kezdőfeltételes elől tesztelő (pl. C-szerű nyelvekben - van logikai feltétele)
Szintaktikája C-szerű nyelvekben:
for (értékadás[, értékadás[...]]; logikai_kifejezés; értékadás[, értékadás[...]]) utasítás;
for (értékadás[, értékadás[...]]; logikai_kifejezés; értékadás[, értékadás[...]]) vezérlési_szerkezet
for (értékadás[, értékadás[...]]; logikai_kifejezés; értékadás[, értékadás[...]]) {utasítás; utasítás;...}
Ezt általában akkor használjuk, ha nem egy konkrét feltételtől függ egy adott kód végrehajtása, hanem azt tudjuk, hogy hányszor kell végrehajtani a ciklusmagot.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Na ja, a for ciklus lehet még felsorolásos ciklus is, ezt kihagytam. Pl. Java-ban, C++-ban:
for (típus azonosíto : kollekció) utasítás;
for (típus azonosíto : kollekció) vezérlési_szerkezet
for (típus azonosíto : kollekció) {utasítás; utasítás; ...}
Ez arra jó, hogyha van valami olyan dolog, amely felsorolható elemekből áll (tömb, kollekció, stb.), az összes elemét sorra veszi és kigyűjti egy általad megadott változóba.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Nem írtál programozási nyelvet.
Van olyan programozási nyelv ahol nincs is while ciklus mert a C-szerű for(;feltétel;) ugyan azt csinálja mint a while(feltétel).
De sok programozási nyelvben a kettő nagyon különbözik. Pl. Pythonban vagy Bashben a for egy objektum elemein iterál végig a for_each-hez hasonlóan, a while-lal pedig ahogy mondtad is "manuálisan" lehet a C-szerű for-t imitálni.
Ezen kívül a C-ben van még hátultesztelős while is, a do-while, ami néha egyszerűsít a kódon.
Kapcsolódó 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!