C mit Gehäuse(Zustand): statt Fall Wert:
Ich versuche zu vereinfachen, ein langes Stück code, und ich Frage mich, ob es möglich wäre, die Bedingungen der Nutzung statt der Werte für var, nachdem eine case-Anweisung.
d.h.,
switch(var) {
case(var>1): printf("Var greater than 1");
case(var<1): printf("Var less than 1");
}
Ist das möglich? Wenn nicht, welche alternativen haben die gleiche Allgemeine Idee?
if
Aussagen?- du meinst wie
if(var>1) ... else if (var<1)...
? - Es ist syntaktisch gültig (und die Klammern sind nicht notwendig). Aber der Ausdruck folgende
case
muss ein konstanter Ausdruck sein. Wennvar
waren eine Konstante (vielleicht ein#define
d makro), dann ist es kompilieren könnte-aber es würde noch deutlicher sein, um die Verwendung einerif
/else
. - wenn
var
nicht signiert ist, dann können Sie dies ändern, umcase 0:
,case 1:
, unddefault:
- Ich bin derzeit mit
if
Aussagen. Ich wurde gerade gefragt ob es eine noch mehr platzsparende alternative. - unter anderen Problemen, es muss ein 'break;' Anweisung zwischen den Fällen einer switch () - Anweisung. Andernfalls wird die Ausführung führen Sie das Ende von einem Fall gleich in die nächste Falle. Es gibt Zeiten, da dies ist wünschenswert.. Dieser code ist nicht eine jener Zeiten.
- eine der besten Möglichkeiten zur Vereinfachung einen langen/komplexen Stück code ist, es zu brechen in überschaubare/self-contained Funktionen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Das ist nicht möglich. Verwenden
if
undelse if
.default
,} else { /* code here }
.switch ist eine bedingte Anweisung, die verwendet wird, um einen Wert in jedem Fall. Es ist nicht möglich, was Sie suchen. Sie haben dies mit If else-Anweisung.