2 Befehle



  • Hi,

    Hört sich vielleicht ein bisschen blöd an, aber könnte mir einer erklaeren, was man mit switch und break macht?

    mfg sld



  • switch (variable)
    {
       case 1:
          bla;
          break;
       case 2:
          bla;
          break;
       default:
         bla;
    }
    

    switch macht hierbei folgendes:
    Es wäht die (variable) (in diesem Fall müsste es eine Zahlvariable sein).
    Dann geht es die Möglichkeiten (case) durch.
    Ist die Variable = 1(case 1: ) wird der darunterstehende Code durchgeführt.
    Das selbe gilt für case 2: usw.
    Wenn nichts zutrifft wird default: durchgeführt.

    break; braucht man dafür, damit er weiß, wann der zum case zugehörige Code aufhört und dort abbricht.
    Kleines Beispiel:

    Der Code ohne break und es tritt der Fall case 1: ein.
    Jetzt würde er sämtliche Befehle ausführen. Auch die die unter case 2: und unter default: stehen, weil er nicht weiß, wo er aufhören muß.



  • mit switch kann man einen Integer/Enum-Ausdruck auswerten und mit break kann man Schleifen und die switch Anweisung verlassen.

    http://tutorial.schornboeck.net/switch.htm



  • mit switch kannst du z.B. int-werte überprüfen:

    int i;
    
    switch(i){
    
    case 1:  //wenn i eins ist
    //tu was
    break;
    
    case 2:  //wenn i zwei ist
    break;
    
    //usw.
    
    default: //wenn kein wert zutrifft
    break;
    
    }
    


  • Also switch ist im Prinzip eine andere Schreibweise für ein "if" mit mehreren "else".
    Besonders gut, wenn man eine Variable auf einen Wert überprüfen möchte und je nach diesem Wert anders verfahren möchte.

    Am besten mal ein Beispiel:
    Statt

    if (i == 2) printf("2\n"); 
     else if (i == 1) printf("1\n");
    

    schreibt man dann:

    int i = 2;
    switch (i)
    {
      case 2:
      printf("2\n");
      break; //ohne würde die 1 auch noch ausgedruckt werden.
    
      case 1:
      printf("1\n"); 
    }
    

    Besonders bei mehreren solcher Fallabfragen ist diese Version übersichtlicher.

    Das break ist dazu da, zu verhindern, dass im Falle i==2 auch noch case(Fall) 1 ausgeführt wird.
    Das kann aber in manchen Fällen auch gewünscht sein.



  • *lol* Leute

    Hier gehört echt mal ne Warnanzeige rein, dass schon jemand anderes antwortet.


Anmelden zum Antworten