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?
Igen kényelmi szempont, de olyan eset sincs, hogy muszáj for helyett while.
for(; ami while ba menne ;) == while ciklus
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.
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.
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.
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 © 2024, 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!