2012. június 7., csütörtök

Elágazás

A ciklusok után jöjjenek most az elágazások és akkor már tisztában lesztek a (nagyon) alapokkal. Mire jó az elágazás? Arra, hogy bizonyos dolgokra valamitől függően, másként reagálhassunk. Ha anyukád megkérdezi, hogy van e még otthon tej, az egy elágazás. Te mondhatod, hogy van, vagy azt, hogy nincs, attól függően, hogy találtál e tejet a hűtőben. Az elágazás az egy döntés, vagyis logikai (boolean) változóra van szükség a használatához, bár ez nem teljesen igaz, bármilyen feltétel jó, aminek a végén egyértelműen igaz, vagy hamis eredményt kapunk. Na, de ez egy kicsit érthetetlenre sikerült ahogy nézem, ezért inkább nézzünk egy példát.

if(5>3) //a reláció értéke igaz, true, 1
{
cout<<"Igaz";
}

Ez egy nagyon egyszerű elágazás volt. Az "if'" azt jelenti angolul, hogy "ha", vagyis ha le akarjuk fordítani a fenti feltételt, akkor azt mondhatjuk, hogy "ha 5 nagyobb, mint 3 akkor...". Ezután jön a kapcsos zárójel. Az ebben lévő kód akkor fordul le, ha a zárójelben lévő kifejezés igaz. Jelen esetben az 5 mindig nagyobb, mint a 3, ezért mindig le fog futni, ami kapcsos zárójelben van. Mi van akkor, ha mégsem teljesül a feltétel? Nézzük meg!

if(1>3) //a reláció értéke hamis, false, 0
{
cout<<"igaz";
}
else
{
cout<<"hamis";
}

Most 1 van az 5 helyén, ami viszont már kisebb, nem pedig nagyobb a 3nál. Ezért az első kapocsban lévő ág nem fog lefutni. Viszont az "else ág" le fog futni. Most már tényleg meg tudjuk mondani, hogy van e tej, vagy nincs. Igazából ezek a programozás alapjai: változók, vezérlési szerkezetek (ciklusok, elágazások). Ezekkel már elég sok mindent meg tudtok csinálni. Egyébként az elágazásokat direkt írtam többesszámban, ugyanis nem csak a fenti példákban bemutatottak léteznek. Else helyett például lehet használni, "elseif()"et, ami annyit jelent, hogy ha az első feltétel nem teljesül, akkor újra megnézzük a kifejezést és még egyszer megvizsgáljuk, de ezúttal másra.

if(x>3) //a reláció értéke hamis, false, 0
{
cout<<"Nagyobb mint3";
}
elseif(x==2)
{
cout<<"Je, ez 2";
}
elseif(x<2)
{
cout<"kisebb mint 2";
}

Így egymásba lehet ágyazni a feltételeket elég hosszan. Ez mondjuk egy picit értelmetlen példa volt most, de csak az "elseif()"et akartam bemutatni. A reláció értéke ugye az x változótól függ, ha az 5, akkor az első ág fut le, ha 2, akkor második, ha mondjuk 1, akkor pedig a harmadik. Ezen kívül is még ott van a Switch szerkezet, ami hasonló az elseif() funkciójához.

switch ("two")
{
case "three": cout << "3";
    break;
case "two": cout << "2";
    break;
case "one": cout << "1";
    break;
default: cout << "kutyus";
    break;
}

Ezt meg lehetne csinálni sima elágazásokkal is, de így szebb. Az elágazásunk megkapja a "two" értéket, majd megkeresi a lehetőségek között és ahol megtalálja, az az ág fog lefutni, vagyis most 2-t fog kiírni. a "default" azért van ott, hogy ha mondjuk olyan értéket kap a Switch, ami nincs felsorolva (esetünkben mondjuk, "ten"), akkor a default ág fog lefutni.
Ez most egy rövid és kicsit összecsapott bejegyzés lett, ha nem érhető valami, nyugodtan lehet kérdezni.

Nincsenek megjegyzések:

Megjegyzés küldése