Befehl "case"



  • Ich weiß nicht, ob inzwischen der Switch-Block von VB anders funktioniert wie bei VB6 damals, aber es gab kein break und insofern war jeder neue Case-Block ein break des alten Blocks, also nicht wie in C++.

    Was Makros angeht ist das Problem so billig, das diese den Code einfach unlesbar machen und totaler Overkill ist. Total unangebracht.

    Jeder Programmierer checkt 6 Blöcke mit if-s am schnellsten, wobei auch hier wieder ein wenig Redundanzen beseitigen kann, die nur wieder zu Fehlern führen, wenn sich etwas ändert:

    if(punkte >=PUNKTE_NOTE1)
       note=1;
    else if(punkte >=PUNKTE_NOTE2) // && punkte < PUNKTE_NOTE1
       note=2;
    else if(punkte >=PUNKTE_NOTE3) // && punkte < PUNKTE_NOTE2
       note=3;
    else if(punkte >=PUNKTE_NOTE4) // && punkte < PUNKTE_NOTE3
       note=4;
    else if(punkte >=PUNKTE_NOTE5) // && punkte < PUNKTE_NOTE4
       note=5;
    else
       note=6; // punkte < PUNKTE_NOTE5
    


  • Ich würd's mit if/else implementieren und, weil der Lehrer sicherlich auch noch stur ist, aus nem Standard-Draft den Abschnitt zu möglichen Angaben nach case ausdrucken und ihm bei Bedarf hinknallen. Dann gibt's auch die 1,0 für zusätzliche Recherche.

    Edit: Oder er fühlt sich angegriffen und gibt ihm dort (oder zukünftig) immer die schlechteste Note. 🤡



  • Am "streberhaftesten" wäre wohl, 2 Lösungen zu präsentieren. Eine nach Aufgabenstellung (mit 100 cases) und eine vernünftige, mit einer ordentlichen Erklärung, warum die switch-Variante in C++ für diese Aufgabe suboptimal ist.


Anmelden zum Antworten