Switch-Case Problem

Hallo!
Aus Basic kenne ich es folgendermaßen:

Select Case Wert
Case Is = 5:
Case Is = 10:
Case Is > 20:
case else:
End select

Mit der Switch-Anweisung komme ich nicht zurecht. Überprüfen ob Wert nun den Inhalt 5, oder 10 hat geht, aber wie überprüfe ich ob der Inhalt von Wert größer 20 ist? Und das else gibt es in C (nicht C++) auch nicht. Wenn ich default nehme, wird immer dieses Ereignis ausgeführt, egal ob der Wert nun 5 oder 10 ist und somit ein anderes Ereignis ausgeführt werden müsste.
Wie muss dass denn richtig heißen? Könnte es mit break klappen, wobei das nicht sehr schön wäre?

Christian

Hallo!
Aus Basic kenne ich es folgendermaßen:

Select Case Wert
Case Is = 5:
Case Is = 10:
Case Is > 20:
case else:
End select

Mit der Switch-Anweisung komme ich nicht zurecht. Überprüfen
ob Wert nun den Inhalt 5, oder 10 hat geht,

Echt? Also unter C produziert Dein Code garantiert ein paar Fehler. Es heisst nicht „select case“ sondern „switch“ und das „Is =“ hat da nichts zu suchen.

switch (wert){
 case : do something; break;
 case : do something else; break;
 default: do the default; break;
}

aber wie überprüfe
ich ob der Inhalt von Wert größer 20 ist?

Nicht mit case, sondern mit „if“.

Und das else gibt es
in C (nicht C++) auch nicht.

Nein, das heißt bie C „default“.

Wenn ich default nehme, wird
immer dieses Ereignis ausgeführt, egal ob der Wert nun 5 oder
10 ist und somit ein anderes Ereignis ausgeführt werden
müsste.

Die „switch - case“ Konstruktion dient dazu, einen Ausdruck mit mehreren konstanten ganzzahligen Werten zu vergleichen.

Dabei ist mit dem „case“ Schlüsselwort nur eine Textposition markiert, das Programm wird nach Ende einer Alternative weiter ausgeführt. Du musst in der Tat jeden „Case“ mit einem „break“ explizit beenden.

K/R empfehlen, auch nach dem „default“ ein „break“ zu setzen, auch wenn das nicht zwingend notwendig ist. Du kannst aber bei einer späteren Erweiterung nicht aus Versehen das „break“ vergessen.

Gruß

Fritze