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++; }
# 49/50 Időpont ma 23:42
# 50/50 Időpont ma 23:43
Persze, vehetjük alapul a malbolge-t is, csak nem kéne...
"Vannak programnyelvek, amelyek a ciklusváltozóra vonatkozó utasítást a ciklusmagban figyelmen kívül hagyják, vagy hibát generálnak..."
Csak okulás végett, mondasz is ilyet?
És személyes kíváncsiságból, te miben fejlesztesz? Mert a repeat-until kulcsszavakat (amire kijavítottad a do-while-t) némi kutakodás után is csak a Pascalban találtam meg, és a for ciklus is eléggé rugalmatlan nyelvi elem ott, míg a többiek mind C-szerű nyelvekben gondolkodnak, ahol a for és a while közti különbség gyakorlatilag szemantikai (kivéve a continue viselkedését).
Pl. ilyenek a basic, a pascal bizonyos dialektusai, stb. de itt egy összefoglaló:
ezen a lapon elég jól nyomon lehet követni egyes nyelvek különbözőségeit, sajátosságait. Komparálni is lehet 1-1 nyelvet.
Én magam jobbára object pascalban, micro pascalban fejlesztek (nem szoftveres, hanem hardveres vagyok), szóval, a pascal talált. Ezért is, hogy tegnap, a do while-ra reakcióként a while do illetve annak vonzata esett be, ezen a ponton tévedtem is. Ez tény.
Jut eszembe, az ADA is ilyen:
"A megadott ciklusváltozó a ciklus kezdetekor létrejön és a ciklus befejeztekor megszûnik.
A ciklusváltozó a ciklusmagra nézve lokális konstans (azaz a ciklusmagban megváltoztatni nem lehet)."
és az algol is, de van még néhány.
Jó, és az mikor jut el hozzád, hogy itt a kérdés feltevésétől fogva C++ nyelvről volt szó, de legalábbis C-szerű nyelvekről. Úgy próbálod előadni a saját kis igazadat, hogy azt sem vagy képes megérteni, milyen nyelvről beszélünk. Igen, a Pascalban a for ciklus lényegesen korlátoltabb, mint egy while. De nem Pascalról van szó, sosem arról volt szó. C++. A C++ nyelvben pedig a for ciklus sokkal bővebb funkcionalitású, és a while-al felcserélhető. Hogy miért van benne for ciklus, ha úgyis ugyanazt tudja, mint a while? Mert:
1. Egyszerűbb és kényelmesebb for ciklussal iterálni egy intervallumon.
2. Mert PÉLDÁUL a hőn szeretett Pascalodban, Ada-ban és rengeteg más nyelvben is vannak külön while és for ciklusok, így szokta meg a programozói közösség, így természetes volt, hogy ezek a nyelvek is tartalmazni fogják őket, még ha funkcionalitásában nem is térnek el nagyon.
Azért a Pascalt nem kellene lehúzni. 20+ éve dolgozok
vele, és amire nekem kell, arra jó. Ebben a nyelvben a
FOR által használt "számláló" változó a cikluson belül
constként viselkedik, ez tény, de számos nyelvben
módosítható. Ez nem limitálásnak tekintendő, hanem aki
menet közben akar variálni cikluson belül, az a
while-t vagy a repeat-until-t használja.
Ennél a C példánál maradva teljesen mindegy, melyiket
használja, a kód többi része befolyásolhatná, de az
nincs :)
Nem húzom le a Pascalt, csak próbálom Kőagy Őrnaggyal megértetni, hogy hiába gondolkozik Pascalos fejjel, mert abban a nyelévben másmilyen a for ciklus, mint C++-ban, amiről ténylegesen szó van.
Egyébként Bulldogocskám, megint magad alatt ásod a gödröt ezzel a képpel.
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!