A szoftverek legfontosabb vezérlő szerkezetei az elágazások. Egy feltételen belül mindenképpen egy eldöntendő, logikai állításnak kell lennie.
A logikai állítás állhat egyetlen logikai változóból, vagy akár egy kifejezésből is, mely végeredményében igaz vagy hamis állítást ad vissza. Mint tudjuk, a logikai típus, azaz a bool, két értéket képes felvenni, az igazat és a hamisat.
If, else if, else – Ha, vagy ha, amúgy…
Az „if”-et érdemes úgy olvasnunk magunkban, hogy „ha a feltételünk igaz”, akkor az igaz ágban szereplő kódsor fog lefutni. Ha esetleg definiáltunk „else” ágat is, azt érdemes úgy olvasni, hogy „minden más esetben” pedig ez a kódrész fog megfutni.
bool logikaiValtozo = true;
if (logikaiValtozo) // Feltétel
{
Console.WriteLine("Igaz"); // Igaz ág
}
else
{
Console.WriteLine("Hamis"); // Hamis ág
}
// Program további része...
A példánk Igaz eredményt fogja kiírni, mert a feltételünkben vizsgált logikai változó true értékkel volt feltöltve.
int szam1 = 20;
if (szam1 < 20)
{
Console.WriteLine("A számunk kisebb mint 20.");
}
else if (szam1 > 20)
{
Console.WriteLine("A számunk nagyobb mint 20");
}
else
{
Console.WriteLine("A számunk egyenlő 20-szal");
}
Ebben a példánkban pedig adott az int típusú, azaz csak egész értékeket befogadó, szam1 változónk 20 értékkel. Ha a számunk kisebb, mint 20, írjuk ki, hogy „A számunk kisebb mint 20”, vagy ha a számunk nagyobb mint 20, akkor írjuk ki, hogy „A számunk nagyobb mint húsz”, minden más esetben pedig biztosak lehetünk benne, hogy „A számunk egyenlő 20-szal”. Az alábbi esetben az else águnk fog megfutni.
Relációs operátorok
Mint azt már említettem, a feltételünkben kifejezések is szerepelhetnek, melyek logikai típust adnak vissza eredményül. Ahhoz, hogy egy logikai eredményt állítsunk elő az értékeink közé logikai kapcsolatot kell tennünk, ehhez használnunk kell a relációs operátorainkat.
int szam1 = 20;
int szam2 = 30;
Console.WriteLine(szam1 == szam2); // False
Console.WriteLine(szam1 != szam2); // True
Console.WriteLine(szam1 >= szam2); // False
Console.WriteLine(szam1 <= szam2); // True
Console.WriteLine(szam1 < szam2); // True
Console.WriteLine(szam1 > szam2); // False
x == y | X egyenlő Y. |
x != y | X nem egyenlő Y. |
x >= y | X nagyobb vagy egyenlő mint Y. |
x <= y | X kisebb vagy egyenlő mint Y. |
x < y | X kisebb mint Y. |
x > y | X nagyobb mint Y. |
Természetesen, nem csak számokat hasonlíthatunk össze, hanem bármilyen azonos típust. Természetesen, különböző típusokat is összehasonlíthatunk, de valamiféle típuskonverziót mindenképpen alkalmaznunk kell.
A != operátor, azaz a nem egyenlő operátor használja a ! felkiáltójel karaktert. Ez a karakter negálásként értelmezendő, azaz ha egy kifejezésünk értéke igaz, de elé rakjuk a negálás karaktert, akkor hamis lesz az adott értékünk.
Logikai operátorok
Logikai operátorokkal logikai visszatérési értékű kifejezések közötti kapcsolatot tudjuk meghatározni. Két ilyen operátorunk van, az ÉS, azaz a &&, és a VAGY operátorok, azaz a ||.
bool logikaiValtozo1 = true;
bool logikaiValtozo2 = true;
if (logikaiValtozo1 == true && logikaiValtozo2 == true)
{
Console.WriteLine("Mindkét változónk igaz.");
}
Ha mindkét változónk értéke, azaz logikaiValtozo1 és logikaiValtozo2 értéke is igaz, akkor kiíratjuk, hogy Mindkét változónk igaz. Érdemes figyelembe venni az igazságtáblát, amikor ÉS kapcsolatot készítünk. Gyakorlatilag az ÉS kapcsolatnál csak akkor kapunk igaz eredményt, ha az && operátorunk mindkét oldalán igaz a kifejezés, amit vizsgálunk.
bool logikaiValtozo1 = false;
bool logikaiValtozo2 = true;
if (logikaiValtozo1 == true || logikaiValtozo2 == true)
{
Console.WriteLine("Az egyik változónk biztosan igaz.");
}
Ha legalább az egyik logikai kifejezésünk teljesül, Igaz eredményt fogunk kapni a VAGY esetében. Tehát, ha a logikaiValtozo1 igaz, vagy ha a logikaiValtozo2 értéke igaz, akkor ki lesz írva, hogy Az egyik változónk értéke biztosan igaz.
Gyors megszakítású kiértékelés
Fontos megemlítenem, hogy a C#-ban úgynevezett „gyors megszakítású” kiértékelés történik a feltételeknél. Tehát, ha egy ÉS kapcsolat bal oldali ága hamis, a jobb oldali ága már nem kerül kiértékelésre, hiszen fölösleges kiértékelnünk, mert az ÉS kapcsolatban ha az egyik operandusunk hamis, az eredményünk hamis.
Ugyan így a VAGY kapcsolatnál ha a kapcsolat bal ága igaz, a többi nem kerül kiértékelésre, hiszen ha a VAGY kapcsolat legalább egyik eleme igaz, a VAGY kapcsolat értéke igaz lesz.