Ein wenig C++ 8

in #deutsch2 months ago

Vielleicht hat sich bei der if-Anweisung so mancher gedacht, ob es nicht eine Anweisung gibt, die mehr Schalter als Bedingungen gleich kommt. Und ja, so etwas gibt es tatsächlich. Der Befehl heißt "switch" und wäre ein gutes Beispiel für einen Lift/Aufzug. Das Stockwerk, das man drückt, wäre dann der jeweilige "case".
Es lässt sich mit if auch machen, aber in Summe ist es aufwendiger. Als Beispiel machen wir einen Lift mit 3 Stockwerken. Das Erdgeschoss nennen wir der einfachheithalber Stockwerk 0. Ich zeige vorher absichtlich die if-Anweisung, damit der Unterschied besser verständlich wird.

int Stockwerk_if = 2;

    if (Stockwerk_if == 0){
        std::cout << "Sie fahren ins Erdgeschoß.\n";
    }
    else if (Stockwerk_if == 1){
        std::cout << "Sie fahren in den 1ten Stock.\n";
    }
    else if (Stockwerk_if == 2){
        std::cout << "Sie fahren in den 2ten Stock.\n";
    }
    else
    {
        std::cout << "Wo wollten Sie denn hinfahren?\n";
    }

und switch

int Stockwerk_switch = 1;

    switch(Stockwerk_switch){
        case 0:
            std::cout << "Sie fahren ins Erdgeschoß.\n";
            break;
        case 1:
            std::cout << "Sie fahren in den 1ten Stock.\n";
            break;
        case 2:
            std::cout << "Sie fahren in den 2ten Stock.\n";
            break;
        default:
            std::cout << "Wo wollten Sie denn hinfahren?\n";
            break;

Vielleicht fällt es nicht beim ersten Blick auf, aber es gibt ein paar designtechnische Details, die switch in solchen Fällen attraktiver machen. Der Variablenname kommt nur 1x vor, die Bedingung ist gleich am Anfang erkennbar (case x); Es braucht keine Klammern; Es muss sich nicht der Wortlaut von case in zB case else ändern.

So, das solls mal von switch gewesen sein.

8.png

grafik.png