Stimmt es, dass der Case Ausdruck einer switch Anweisung eine Konstante sein muss, bzw. konstant sein muss??
1 | switch(Dir) |
2 | {
|
3 | |
4 | case Array[0]: printf(""); |
5 | break; |
6 | |
7 | }
|
Dies funktioniert also nicht!?? Gruss und danke! M.B.
|
Forum: PC-Programmierung switch Anweisung mit VariablenStimmt es, dass der Case Ausdruck einer switch Anweisung eine Konstante sein muss, bzw. konstant sein muss??
Dies funktioniert also nicht!?? Gruss und danke! M.B. Vereinfacht: Beim Switch baut der Compiler beim Übersetzen mit Hilfe der CASE Werte eine Sprungtabelle für die einzelnen Fälle auf. Dafür müssen die Werte beim Kompilieren bekannt sein. Die Inhalte der Variablen sind erst zur Laufzeit bekannt. M. B. schrieb: > Dies funktioniert also nicht!?? Kann es auch nicht, stell Dir mal folgende Situation vor:
Da alle Elemente des Arrays den gleichen Wert haben, würde dann welcher case-Fall ausgeführt werden? Nein, switch/case geht nur mit ganzzahligen Konstanten. Nicht mit float-Werten, nicht mit Strings, und erst recht nicht mit Variablen. switch (Array[0]) würde gehen wenn es ein Ganzzahl-Array ist (also char oder int, nicht float oder double). Vielleicht ist es das was der Themenersteller eigentlich will? Zunächst sollte man mal klären, um welche Sprache es eigentlich geht. Rufus Τ. Firefly schrieb: > Nein, switch/case geht nur mit ganzzahligen Konstanten. Nicht mit > float-Werten, nicht mit Strings, und erst recht nicht mit Variablen. Coder schrieb: > Abschließend die Empfehlung nochmals C Grundlagen aktualisieren. In PHP kann auch mit nicht konstanten Ausdrücken, mit beliebigen Datentypen und auch mehrdeutigkeiten gearbeitet werden (es wird dann der erste zutreffende Case gewählt) ich sehe nirgends das 'C' als Sprache genannt wurde... Folgendes ist z.B. gültiges (wenn auch nicht schönes) PHP:
Rolf Magnus schrieb: > Zunächst sollte man mal klären, um welche Sprache es eigentlich geht. Schon. Die Verwendung von
in genau dieser Syntax spricht allerdings schon sehr für C. Das PHP-Programmierer einen Schlag haben steht ja wohl außer Frage. Die Syntax im Beispiel des TO deutet bei den Sprachen mit nennenswerter Verbreitung wohl auf C/C++ hin. Mark Brandis schrieb: > in genau dieser Syntax spricht allerdings schon sehr für C. PHP hat die gleich Syntax... http://php.net/manual/de/function.printf.php Müsste es in PHP nicht
heißen? Ist aber ne Weile her dass ich was in der Sprache gemacht hab. (ich war jung und brauchte das Geld ;-) Im Prinzip ja, es sei den 'Dir' wurde zuvor als Konstante definiert:
;-) Tag! Ja, ich meinte C! Sorry!! Dies mit den Variablen leuchtet mir ein, ist ja klar! Danke und Gruss! M.B. 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.
|
|