8. Elágazás (if, else if, else, switch) - randallra vár a szinezése
Írta: eDems - Dátum: 2010. March 23. 21:00:36
A scriptekben a legfontosabb dolgok közé sorolható az elágazások, ezek nélkül nem is igazán tudnánk scriptelni. Az elágazás lényege, hogy amikor elér hozzá a fordító(cod2), akkor megnézi a benne lévő állítást(feltételt, legtöbbször operátorok segítségével), és az alapján választja el melyik utat választja tovább a program. Ez elsőre kicsit bonyolultnak hangzik, de majd a példákból megérted. :)

1. egyszerű if


main(){
szam = 1;
if(szam<2) // a feltétel igaz mert 1 < 2
iprintln("A " + szam + " kisebb, mint 2.");
}



Itt, ha a szam változó értéke kisebb, mint 2 akkor kiírja a szöveget, ha nem akkor kihagyja ezt a sort.
Ha több parancsot szeretnénk a feltételhez kötni, akkor {} kell használnunk.


main(){
szam = 0;
if(szam<2){ // a feltétel igaz mert 0 < 2
iprintln("A " + szam + " kisebb, mint 2.");
iprintln("Ezt is csak akkor látom, ha a számunk kisebb, mint 2.");
}
}



2. if és else

Az else arra való, ha nem csak azt szeretnénk, hogy akkor hajtson végre parancsot, ha igaz, hanem akkor is, ha nem igaz.(fúdejómondatlett sry)


main(){
szam = 2;
if(szam<2){ // a feltétel hamis mert 2 nem kisebb, mint 2
iprintln("A " + szam + " kisebb, mint 2."); //ezt nem írja ki
iprintln("Ezt is csak akkor látom, ha a számunk kisebb, mint 2."); //ezt se
}
else{
iprintln("A " + szam + " NEM kisebb, mint 2, tehát nagyobb vagy egyenlő."); //ezt viszont kiírja
}
}



Természetesen itt is lehet {} nélkül megadni parancsot, de figyelni kell arra, hogy az if után csaka egy parancs lehet. De lehet kombinálni is, szóval az ifnél zárójel és az elsenál meg nincs, vagy fordítva.

3. if, else és elseif

Az elseif arra való, hogy egy újabb feltételt belerakjunk, az elágazásba, de csak akkor nézi meg a feltételt a fordító, ha az elötte lévők nem teljesültek.


main(){
szam = 2;
if(szam<2){ // az állítás hamis mert 2 nem kisebb, mint 2
iprintln("A " + szam + " kisebb, mint 2."); //nem írja ki
iprintln("Ezt is csak akkor látom, ha a számunk kisebb, mint 2."); //ezt sem
}
elseif(szam>2){ // az állítás hamis mert 2 nem nagyobb, mint 2
iprintln("A " + szam + " nagyobb, mint 2."); //ezt sem írja ki
}
else{
iprintln("A " + szam + " nem is kisebb, de nem is nagyobb, mint 2, tehát az értéke 2."); //ezt írja ki
}
}


(Itt is lehet a {}-el játszani, de több elseif-es tagot is berakhatunk.)

4. switch

A switch(vagy más néven case) olyan mint egy rövidítés. Akkor tudjuk, használni, ha egy változónak az értékét vizsgáljuk, több ágon.

Az alap:


main(){
szam = 2;
if(szam == 0){ //hamis
iprintln("A " + szam + " egyenlő 0-val."); //nem írja ki
}
elseif(szam == 1 or szam == 2){ //igaz
iprintln("A " + szam + " egyenlő 1-el vagy 2-vel."); //kiírja
}
elseif(szam == 3){ //hamis
iprintln("A " + szam + " egyenlő 3-al."); //nem írja ki
}
elseif(szam == 4){ //hamis
iprintln("A " + szam + " egyenlő 4-el."); //nem írja ki
}
else{
iprintln("A " + szam + " nem egyenlő se 1-el, se 2-vel, se 3-al, se 4-el."); //nem írja ki
}
}


Switch-el:


main(){
szam = 2;
switch(szam)
{
case 0: //hamis mert 0 nem egyenlő 2-vel
iprintln("A " + szam + " egyenlő 0-val."); //nem írja ki
break;
case 1: //hamis
case 2: //de ez igaz
iprintln("A " + szam + " egyenlő 1-el vagy 2-vel."); // ezért kiírja ezt
break;
case 3: //hamis
iprintln("A " + szam + " egyenlő 3-al."); //nem írja ki
break;
case 4: //hamis
iprintln("A " + szam + " egyenlő 4-el."); //nem írja ki
break;
default:
iprintln("A " + szam + " nem egyenlő se 1-el, se 2-vel, se 3-al, se 4-el."); //nem írja ki
break;
}
}



Forrás: http://www.modsonwiki.com/
Fordította, átírta: Ksisu - TotalConversion.hu