Ezt a kódot elmagyarázná valaki (Javascript)?
Szóval, elkezdtem jst tanulni és volt egy feladat aminek megoldására rákerestem, és volt egy felhasználó aki megcsinálta csak sokkal komolyabban. így nézne ki:
for (var i=1; i<2; i++) {
var user_name = prompt ("Enter your first name in the box below","");
if ((user_name == null ) || (user_name == "")) {
alert ("You must enter your first name!");
i--
}
}
for (var i=1; i<2; i++) {
var last_name = prompt ("Enter your last name in the box below","");
if ((last_name == null ) || (last_name == "")) {
alert ("You must enter your last name!");
i--
}
}
greet (user_name, last_name); // call the greet() function
function greet (who1, who2) {
document.write("Hello " + who1 + " " + who2 + ", Welcome to my Site!");
}
Azt értem hogy mindenképp meg kell adni vmi értéket ahhoz hogy békénhagyjon, de miért kell a kódot kétszer megírni, illetve a for ciklus értelmét se látom itt. Oké hogy egytől növekszik míg nem éri el a 2-t, de miért? illetve a végén meg csökkenti. Nem értem, talán azért hogy a függvény visszatérjen az előző prompthoz?
Persze így jobb:
for (var i=true; i;) {
var user_name = prompt ("Enter your first name in the box below","");
if ((user_name == null ) || (user_name == "")) {
alert ("You must enter your first name!");
} else {
i = false;
}
}
"
for (var i=true; i;) {
var user_name = prompt ("Enter your first name in the box below","");
if ((user_name == null ) || (user_name == "")) {
alert ("You must enter your first name!");
} else {
i = false;
}
}
"
Nemáááár.. a for az számlálós ciklusnak van kitalálva, maradjon is az.
var i = TRUE;
var user_name;
while (i) {
user_name = prompt ("Enter your first name in the box below","");
if ((user_name == null ) || (user_name == "")) {
alert ("You must enter your first name!");
} else {
i = FALSE;
}
}
hát, elsőnek is maradjunk annál amit a kérdésben feltettem:
for (var i=1; i<2; i++) {
var last_name = prompt ("Enter your last name in the box below","");
if ((last_name == null ) || (last_name == "")) {
alert ("You must enter your last name!");
i--
}
}
Van a for ciklus, ami egytől kettőig megy. Mit jelent valójában az egy és mit a kettő? Szóval 1: az az állapot mikor nem írtam be semmit, 2 amikor beirtam valamit és mehetek tovább? és ha nem írok be semmit de leokézom akkor életbe lép az i-- hogy visszatérjen az 1eshez?
Mondjuk akkor gondolom kéne else is.
Illetve amit ti írtatok:
for (var i=true; i;)
miért kellett egy i; a végére?
Az 1 a kezdőérték, a 2 meg a feltétel értéke. A for ciklus addig fut le, amíg az i kisebb mint 2, vagyis igaz a feltétel.
Ha kitöltik rendesen a mezőt, akkor nem fut le az if-ben megadott feltétel (mert hamis), és az i értéke 2-re nő (i++ miatt), így a feltétel már nem igaz és nem fut le a for ciklus újból.
Ha nem, vagy rosszul töltik ki, akkor az if igaz lesz, és lefut a benne megadott kód (i--), így a for feltétele megint igaz lesz, és újból lefut.
De nézz utána a for ciklus/if elágazás felépítésének/működésének, nem túl bonyolultak.
Ide tényleg jobb a while, mert a for-t arra találták ki amikor tudni számszerűleg, hogy hányszor kell a ciklus magját megismételni.
#viperM
Legfőképp olyan nyelvet használok ahol a for ciklus alkalmazása már rég nem csak a számlálásról szól, és fontos, hogy minél kisebb blokkon belül legyen elérhető a változó. Természetesen ami ott működik és megszokott itt JavaScriptes körökben lehet randának minősül.
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!