Forum: Mikrocontroller und Digitale Elektronik caseanweisung in c


von Gert (Gast)


Lesenswert?

1
 
2
     switch (Zeichen[0])
3
      {
4
        case 'q' :
5
        case 'Q' : func()
6
        ...

ich dachte immer eine switch/case Anweisung wäre so ziemlich das 
Einfachtse was es gibt. Leider habe ich doch noch ein kleines Defizit.

Der kleine Programmausschnitt oben soll das erste Zeichen von 
"Zeichen[]" auswerten.
warum wird auch func() bei Zeichen[0]) = q aufgerufen?
Ich hatte das immer so verstanden, dass immer nur in den case gesprungen 
wird, wenn die Bedingung erfüllt ist.
Versteht ihr mein Problem?

von Benedikt Patt (Gast)


Lesenswert?

Da fehlt ein break;

von ... (Gast)


Lesenswert?

willst du auf das fehlense break; hinaus?

von Der L. (vhdl-neuling)


Lesenswert?

Du hast ein "break;" vergessen. Fehlt dieses werden alle 
case-Anweisungen bis zum nächsten break durchlaufen.

Gruß,
derLars

von Snowowl (Gast)


Lesenswert?

Ein case: ist dann abgeschlossen wenn ein break oder das Ende der switch 
Anweisung erreicht ist.

    switch (Zeichen[0])
      {
        case 'q' :
        break;             // Hier ist case 'q' fertig
        case 'Q' : func()
        ...

von Gert (Gast)


Lesenswert?

1
     switch (Zeichen[0])
2
      {
3
        case '1' : func1();
4
        case '2' :func2();
5
        case '3' :func3();
6
        case '4' :func4();
7
                  break;
8
        case '5' : func5()

wenn Zeichen[0] = 1 wird also func1, func2, func3 und func4 aufgerufen?

von Rene H. (Gast)


Lesenswert?

Ja

von Gert (Gast)


Lesenswert?

dann vielen dank :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.