Maiz, aldagaien balioen arabera, agindu batzuk edo beste batzuk bete beharko dira, edo aginduak hainbat aldiz errepikatu, baldintza bat betetzen den bitartean. Beraz, fluxua kontrolatzeko egiturak erabiltzen direnean, programek linealtasuna galtzen dute, eta adimentsu egiten dira.
Hori guztia lortzeko, kontrol-egiturak erabiltzen dira:
if… else
; switch
for
; while
; do … while
Baldintzazko sententzia da, jarritako baldintza betez gero. Lehenengo kasuan, aginduak bete egingo dira; bestela, ez du ezer egingo. Bigarrenean, agindu batzuk beteko dira.
Sintaxia, honako hau da kasu bakoitzean[1]:
1] Giltzak ez dira beharrezkoak agindu bakarra ematen denean.
Beste adibide batzuk:
if (adina > 18) {
document.write("Zorionak, adin nagusikoa zara!");
}
if (eguna == “ostirala” && ordua > 3)
document.write("Ondo pasa asteburuan!");
Lehenengo adibidean, baldintzak “adina” aldagaiaren balioa eta 18 zenbakia alderatzen ditu baldintzazko eragile baten bitartez (==)[*].
Baldintza betetzen denean, giltza artean dagoen agindua beteko da, eta, beraz, “Zorionak adin nagusikoa zara!"
agertuko da pantailan.
ifen baldintzan hainbat eragile logiko ager daitezke, bigarren adibidean ikusten den moduan. “eguna” aldagaian “ostirala” balioa betetzen bada, orduak 3 baino handiagoa izan behar du “Ondo pasa asteburuan!” mezua idazteko, horrela eskatzen duelako AND (&&)
eragileak; biak bete behar dira, True izateko eta, beraz, baldintza betetzeko.
AND (&&
) eta OR (||
) eragileak baldintza sinpleak lotzen dituzte, baldintza konplexuak lortzeko.
Bestalde, aldagai berarekin baldintza bat baino gehiago izanez gero, if egitura bakoitza bata bestearen atzetik jarri beharko da:
(*) Kontuz! Ez nahastu == eta =. Alderatzeak, == eragilearekin beti; = eragileak balioak bakarrik esleitzen ditu.
Baldintzazko sententzia da; baina, aldagaiaren balioaren arabera, hainbat agindu exekutatzeko modua eskaintzen du.
Sintaxia honako hau da:
Kontuan izan parseInt(adina)
aginduak pantailan hartutako balioa stringetik zenbaki-formatura aldatzen duela.
For
begizta (bucle, loop), agindu bat edo gehiago behin baino gehiagotan errepikatzeko erabiltzen da, baldintza betetzen den bitartean. Sintaxia honako hau da:
Errepikapen bakoitzaren ostean erabiltzen dituen aldagaien balioak eguneratzen ditu. Aldagai hauek kontuan hartzen ditu:
var mezua = "Kaixo guztioi";
var i;
for(i = 0; i < 5; i++) {
alert(mezua);
}
for begizta 5 bider errepikatuko da.
Askotan, for begizta array aldagai-bildumak irakurtzeko erabiltzen da:
var urtaroak=["udazkena", "negua", "uda", "udaberria"];
document.write ("Urtaroak: ","<br>");
for(i=0; i<4;i++)
{
document.write(urtaroak[i], "<br>");
}
while
egiturak baldintza betetzen den bitartean behin edo gehiagotan exekutatzen diren begiztak sortzen ditu.
Baldintza betetzen den artean, giltza artean dauden aginduak exekutatuko dira, behin eta berriro; baldintza betetzen ez bada, begiztatik atera, eta hurrengo agindura joko du. Baldintza kudeatzen duten aldagaiak begiztaren barruan eguneratu beharko dira; bestela, begizta amaiezina izango litzateke.
Adibide honetan, lehenengo 10 zenbakiak aurkezten dira pantailan:
var num = 10;
var i = 1;
while(i <= num) {
document.write(i);
i++;
}
Indizea (i) 10era heltzen denean, begizta amaitu egingo da. Exekuzio bakoitzean, zenbakia idatziko da pantailan, eta indizea eguneratu egingo da.