Ich verstehe die Ausgabe nicht



  • switch ('B')
    {
    case 'A' : puts ("Eins");
    case 'A'+1: puts ("Zwei");
    case 'A'+2: puts ("Drei");
    default : puts ("Null");
    }

    warum wird hier

    Zwei
    Drei
    Null

    ausgegeben? die Zwei verstehe ich ja, weil 'A'+1 = B ist. Aber warum der Rest? 'A'+2 sollte ja C sein.


  • |  Mod

    Vielleicht möchtest du break am Ende deiner Blöcke setzen? Ein switch ist ein primitives 'spring hier hin', kein 'führ nur diesen Block aus'.

    Die Technik mit dem break gehört zu jeder brauchbaren Beschreibung von switch.



  • Weil das Programm von einem case in denn nächsten durchfällt, wenn der case nicht durch break; beendet wird. Lies noch mal Syntax und Funktion der switch-case-Anweisung genau nach.



  • Weil der Code weiter ausgeführt wird, da da nirgends ein break steht. Wahrscheinlich willst Du

    switch ('B') {
        case 'A' : puts ("Eins"); break;
        case 'A'+1: puts ("Zwei"); break;
        case 'A'+2: puts ("Drei"); break;
        default : puts ("Null"); break;
    }
    


  • das war eine aufgabe in einer probeklausur. habs jetzt aber verstanden vielen dank


Anmelden zum Antworten