Eine switch-case sieht ja nomalerweise so aus. switch(x) { case 210: l = 1; break; . . . . } Wie kann ich jetzt in einer switch-case etwas zwischen zwei werten "vergleichen". Also x zwischen 10 und 20. mfg PS. So sieht das in Basic aus. Case 10 To 20: l = 1
case 11: // anweisungen break; case 12: // anweisungen break; ... case 19: //anweisungen break;
Johannes schrieb:
> Also x zwischen 10 und 20.
Gar nicht.
Ein case in C geht immer nur auf einen konstanten Wert.
Wenn dein zu testender Bereich klein ist, kannst du die Fall-through
Lösung benutzen
switch( x ) {
case 0:
mach was;
break;
case 5:
mach was anderes;
break;
case 10:
case 11:
case 12:
mach was für 10, 11, 12
break;
}
aber abgesehen davon, benutzt du dann mit einem switch-case ganz einfach
das falsche Werkzeug und solltst auf if else-if Ketten ausweichen.
Du könntest auf x ne Funktion anwenden, die den Wertebereich einschränkt, um mit weniger cases auszukommen.
wiso muss es denn switch sein!? if(i>10&&i<20){ } else{ } macht genau das
Der gcc kann das aber als Erweiterung (also nicht portabel gegenüber anderen Compilern):
1 | switch( i ) |
2 | {
|
3 | case 0: |
4 | puts( "nix" ); |
5 | break; |
6 | |
7 | case 1 ... 5: |
8 | puts( "1 bis 5" ); |
9 | break; |
10 | |
11 | case 6: |
12 | puts( "6" ); |
13 | break; |
14 | |
15 | default : |
16 | puts( "?" ); |
17 | break; |
18 | }
|
Siehe http://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html#Case-Ranges
Ich dachte nur es könnte vll. mit switch gehen würde übersichtlicher aussehen. Denn in Basic und php habe ich das schon gesehen. Danke für eure Hilfe. Dann werde ich es doch mit if aufbauen.
@Klaus: Ah hab dein post ganz übersehen. Vielen 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.