Miért használnak egyesek for ciklus helyett while ciklust számláláshoz?
Van-e esetleg ennek valami hatékonyságbeli oka, vagy csak egyszerű szimpátia?
Tehát például ehelyett: for (int i = 0; i < 20; i++) { cout << i << endl; } van, aki ezt használja: int i; while (i < 20) { cout << i << endl; i++; }
"Azért elég forró azt állítani, hogy a for futását a cv határozza meg. Ugyanis a kilépési feltétel határozza meg. Ami ekvivalens a while feltételével."
Jobbak vagytok mint egy viccujság. Abszolút komolyan mondom.
Azon azért eltöprenghetsz, vajon miért létezik egy nyelvben a for mellett while is, ha a for azzal 100 %-ban ekvivalens.
"A Java 3 alapvető ciklust használ. A for ciklust általában megszámlálható elemeknél használjuk, míg a while és a do while ciklusoknál valamilyen logikai feltétel teljesülése esetén hajtjuk végre a ciklus magját."
Szerintem ti valahol ott tévedtek - én már csak ezt vizsgálom - hogy a while esetében is egy ciklusváltozó kiértékelését képzelitek el, talán így is alkalmazzátok a while-t, holott, a while esetében bármilyen (külső) feltétel eredményétől függővé lehet tenni a ciklusmag lefutását illetve az iteráció(k) számát, amennyiben ...
"a while esetében bármilyen (külső) feltétel eredményétől függővé lehet tenni a ciklusmag lefutását illetve az iteráció(k) számát"
Ahogy a fornál is.
Másodjára kérdezem: Honnan idézgeted ezeket?
Mert az idézeteddel alapvető gondok vannak, azon túl is, hogy egybeveszi az elöl és a hátultesztelő ciklust.
Bemásoltam az egyik idézetét 43%-nak google-be és ezt találtam:
"Ahogy a fornál is."
a FOR-t leggyakrabban arra használod, hogy valamit lefuttass n-szer. Az n pedig a ciklusváltozód min és max közötti intervalluma lesz. Ha n zéró akor nem fut le a ciklus. Sok nyelvben a ciklusváltozó automatikusan inkrementálódik, viszont nem befolyásolható, sőt, vannak nyelvek ahol a ciklusváltozó csak integer lehet, a step minimuma pedig értelemszerűen 1.
A while esetében ciklusváltozó nincs is. Csak egy feltétel aminek függvényében fut le a mag akár 78 milliószor, akár csak egyszer, akár egyszer sem While (vagy csak egyszer (Do While)).
"Sok nyelvben a ciklusváltozó automatikusan inkrementálódik, viszont nem befolyásolható, sőt,"
Ez már hogy lehet igaz egy ciklus blokkjában lehet többféle kód ami különböző módokon növeli vagy csökkent egy ciklusváltozót.
"a FOR-t leggyakrabban arra használod, hogy valamit lefuttass n-szer."
Ettől még a for esetében bármilyen (külső) feltétel eredményétől függővé lehet tenni a ciklusmag lefutását illetve az iteráció(k) számát
"Ez már hogy lehet igaz egy ciklus blokkjában lehet többféle kód ami különböző módokon növeli vagy csökkent egy ciklusváltozót."
Vannak programnyelvek, amelyek a ciklusváltozóra vonatkozó utasítást a ciklusmagban figyelmen kívül hagyják, vagy hibát generálnak fordításkor/interpretáláskor.
"Ettől még a for esetében bármilyen (külső) feltétel eredményétől függővé lehet tenni a ciklusmag lefutását illetve az iteráció(k) számát"
Bizonyos programnyelvekben igen.
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!