Instrukcje warunkowe i pętle





1. if
Instrukcje będą wykonywane, jeżeli warunek jest prawdziwy. Składnia jest następująca:
if (warunek) {
kod wykonywany jeżeli warunek spełniony
}
wiek=prompt("W jakim jesteś wieku?")
if (wiek>18) {
document.write("Jesteś pełnoletni, więc możesz wejść dalej.")
document.write("< br> < a href=\"adult.html\"> Wejście dla dorosłych</a>")
}

2. if ... else
Konstrukcja podobna do poprzedniej - dodajemy jednynie kod, który zostanie wykonany, jeżeli warunek nie zostanie spełniony.
if (warunek) {
kod wykonywany jeżeli warunek spełniony
}
else {
kod wykonywany jeżeli warunek nie spełniony
}

odpowiedz=prompt("W którym roku narodził się JavaScript?")
if (odpowiedz=="1995") {
document.write("Brawo! Masz dobrą pamięć!")
}
else {
alert("Źle!!!")
document.write("Nie zapamiętałeś dokładnie pierwszego spotkania? ;)")
}

3. switch
Używamy tej konstrukcji, jeżeli chcemy wykonać jeden z wielu bloków kodu w zależności od zmiennej:
switch (zmienna) {
case wartosc1:
kod wykonywany gdy zmienna=wartosc1
break
case wartosc2:
kod wykonywany gdy zmienna=wartosc2
break
// ... itd
case wartoscX:
kod wykonywany gdy zmienna=wartoscX
break
default:
kod wykonywany, gdy żadnej z powyższych wartości nie przyjmuje zmienna
}

var dzis=new Date() // tworzony jest obiekt z datą
dzien=dzis.getDay() // wiemy jaki jest dzien na podstawie daty
switch (dzien)
{
case 5:
document.write("wreszcie piątek")
break

case 6:
document.write("imprezowa sobota")
break
case 0:
document.write("śpiąca niedziela")
break
default:
document.write("kiedy wreszcie będzie weekend?!")
}


4. Operator warunkowy.
Operator ten pozwala czasami oszczędzić miejsce, gdyż doskonale zastępuje prostą konstrukcję if-else w której mamy w zależności od warunku pojedynczą reakcję: zmienna=(warunek)?wartoscTRUE:wartoscFALSE
Działa to w ten sposób, że jeżeli warunek jest spełniony, to do zmiennej przypisywana jest wartoscTRUE, w przeciwnym wypadku wartoscFALSE liczba=prompt("podaj jakąś liczbę:")
jaka=(liczba%2==0)?"parzysta":"nieparzysta"
document.write("podana liczba jest "+ jaka)

5. Pętla while
Kod w pętli while jest wykonywany przez cały czas, gdy warunek jest spełniony: while (warunek) {
kod pętli
}

litera="a"
while(litera!="z") {
document.write(litera)
kodLitery=litera.charCodeAt() // pobierany jest kod ASCII litery
kodLitery++ // zwiększamy kod o 1
litera=String.fromCharCode(kodLitery) // tworzymy litere z kodu ASCII
}

W powyższym przykładzie zostaną wypisane po kolei wszystkie litery od a do y. Litera z nie zostanie wypisana, gdyż warunek przestaje być spełniony i nie wykonuje się kod z wnętrza pętli while.

6. Pętla do-while
Pętla jest bardzo podobna do poprzedniej, z tym że zawsze musi być wykonana co najmniej 1 raz: nawet, gdy warunek nie będzie spełniony. Jest to związane z tym, że warunek jest sprawdzany na końcu:
do {
kod wykonywany w pętli
} while (warunek)

7. Pętla for
Pętla for może być wykorzystana do wykonania pewnego kodu określoną ilość razy. for(inicjalizacja_zmiennej; warunek; zmiana_zmiennej) {
kod wykonywany w pętli
}

do {
procent=parseInt(prompt("Podaj procent zawartości (0-100):",""))
} while (procent<0 | procent>100 | isNaN(procent))
/* parseInt zamienia wartosc ktora podal uzytkownik na liczbe calkowita
petla wykonuje sie dotad, az uzytkownik wpisze liczbe z przedzialu 0-100 jezeli uzytkownik wpisze inny znak lub ciag znakow, wowczas operacja parseInt zamienia taki ciag na wartosc NaN (Not a Number) - co jest rowniez sprawdzane w jednym z warunkow dzialania petli */

slupek="< font color=\"#00FF00\">"
for (i=0;i<=procent;i++) {
slupek+="|"
}
slupek+="< /font> < font color=\"#0000FF\">"
for (i=procent+1;i<=100;i++) {
slupek+="|"
}
slupek+="< /font>"< br />
document.write("< br>"+ slupek +" = "+ procent +"%")