Ebben a javascript programba miért nem kell } - ez a jel?
Így volt a példában:
var n=42;
do {
n = prompt('Kérek egy számot','0');
} while (!isFinite(n));
document.write('A megadott szám=', n);
De nem így kéne?:
var n=42;
do {
n = prompt('Kérek egy számot','0');
} while { (!isFinite(n)); }
document.write('A megadott szám=', n);
Rohadtul nem értem már bocsánat, hogy mikor kell a zárójel meg mikor nem....
Vagy így?:
var n=42;
do {
n = prompt('Kérek egy számot','0');
} while { (!isFinite(n));
document.write('A megadott szám=', n); }





Ha csak egy utasítás van akkor nem kötelező blokkba tenni.
Tehát a fenti kódodban:
while {
(!isFinite(n));
}
és
while
(!isFinite(n));
ekvivalens egymással. Viszont ha lenne még egy utasítás a ciklusmagban, akkor zárójel közé kell tenni.





while { (!isFinite(n)); }
Ilyen nincs.
A {} egy blokkot jelöl, a ciklusfeltétel pedig nem egy blokk, hanem egy kifejezés.










Kevered a while és do-while ciklust.
hile:
while(feltétel){ ... }
do-while:
do { ... } while(feltétel)
Az egyik egy előltesztelő, a másik egy hátultesztelő ciklus (vagyis az egyik a ciklusmag végrehajtása előtt, a másik utána ellenőrzi a feltételt, a lényegi különbség, hogy a hátultesztelős ciklus legalább egyszer le fog futni)





{}-t akkor használsz, ha a függvényhez több sor tartozik. - Vagy helyette tabulátorral behúzod, ha engedi a nyelv ezt a szintaktikát. Így érthető?
Igazából ha tiszta, szép kódot akarsz kiadni a kezed közül, akkor mindig rakd ki a {}-t és konzekvensen használd, tehát vagy:
if {
[...]
}
vagy:
if
{
[...]
}
legyen mindenhol.





A while után mindkét (elöl-hátul tesztelő) ciklus esetén a feltétel áll, zárójelben. Ennyit jegyezz meg.
... while (feltétel) ...
Ha a ciklus elején vizsgálja a feltételt, akkor utána jön a ciklusmag:
while (feltétel) utasítás;
Ha a végén, akkor elé jön egy do kulcsszóval kezdve:
do utasítás while (feltétel);
Ennyi. Az, hogy az utasítás helyére több utasítás is írható egy blokkban {}, az más kérdés, az nem része a while szintaktikájának.





#7 "Vagy helyette tabulátorral behúzod, ha engedi a nyelv ezt a szintaktikát. Így érthető?"
Ez a Pythonon kívül gyakorlatilag sehol nem működik, nem kéne ilyen tanácsokat osztogatni. És a Python esetében meg nem opcionális, ott úgy *kell* csinálni.





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!