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. Wenn var waren eine Konstante (vielleicht ein #defined makro), dann ist es kompilieren könnte-aber es würde noch deutlicher sein, um die Verwendung einer if/else.
  • wenn var nicht signiert ist, dann können Sie dies ändern, um case 0:, case 1: , und default:
  • 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.

InformationsquelleAutor 2xedo | 2015-03-13
Schreibe einen Kommentar