Kihagyás

2.12. Többszörös választás (switch utasítás)

Ha egy programban egyetlen változó értékétől függően nagyon sokfelé ágazhat a végrehajtás, az if-else szerkezet egy idő után átláthatatlanná és nehezen olvashatóvá válhat. Ilyenkor érdemes a switch (többágú elágazás) utasítást használni.

A switch megvizsgálja egy változó (vagy kifejezés) értékét, és az annak pontosan megfelelő case (eset) ágra ugrik. Minden ágat egy break utasítással kell lezárni, ami kilépteti a programot a vizsgálatból.

Általános forma:

switch (változó)
{
    case érték1:
        // utasítások, ha a változó == érték1
        break;
    case érték2:
        // utasítások, ha a változó == érték2
        break;
    default:
        // utasítások, ha egyik fenti értékkel sem egyezik (opcionális, mint az else)
        break;
}

16. feladat

Kérjünk be egy érdemjegyet számként (1-5), majd a switch utasítás segítségével írjuk ki szövegesen (elégtelen, elégséges, közepes, jó, jeles)! Ha a szám nem 1 és 5 közötti, írjuk ki, hogy "Hibás adat!" Név: Switch1.

Megoldás:

static void Main(string[] args)
{
    int jegy;
    Console.Write("Kérek egy érdemjegyet (1-5): ");
    jegy = Convert.ToInt32(Console.ReadLine());

    switch (jegy)
    {
        case 1:
            Console.WriteLine("Elégtelen");
            break;
        case 2:
            Console.WriteLine("Elégséges");
            break;
        case 3:
            Console.WriteLine("Közepes");
            break;
        case 4:
            Console.WriteLine("Jó");
            break;
        case 5:
            Console.WriteLine("Jeles");
            break;
        default:
            Console.WriteLine("Hibás adat!");
            break;
    }
    Console.ReadKey();
}


Gyakorló feladatok

  1. Készítsen programot, amely egy 1 és 12 közötti szám beolvasása után kiírja a képernyőre az adott hónap nevét! Ha a szám nem ebben a tartományban van, jelezze a hibát!
  2. Kérjen be egy karaktert (pl. 'a', 'b' vagy 'c'), amely egy menüpontot jelképez! A switch utasítás segítségével írja ki, hogy melyik menüpontot választotta a felhasználó (pl. 'a' -> "Adatbevitel", 'b' -> "Feldolgozás", 'c' -> "Kilépés").
  3. Készítsen egy egyszerű számológépet! Kérjen be két számot, majd kérjen be egy műveleti jelet (+, -, *, /) szövegként vagy karakterként! A switch utasítással végezze el a kért műveletet a két számon, és írja ki az eredményt! Ügyeljen arra, hogy osztás esetén a nullával való osztást a program ne engedje meg!
  4. Kérje be a hét egy napjának sorszámát (1-7), és döntse el róla egy switch utasítással, hogy az adott nap munkanap-e vagy hétvége! (Tipp: A switch szerkezetben több case ág is összevonható, ha ugyanazt az eredményt adják, például case 1: case 2: ...)