Stimmt es, dass der Case Ausdruck einer switch Anweisung eine Konstante sein muss, bzw. konstant sein muss??
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Dies funktioniert also nicht!?? Gruss und danke! M.B.
|
Anzeige
|
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.
Gast
#2425757
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.
Gast
#2425821
Abschließend die Empfehlung nochmals C Grundlagen aktualisieren. 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?
Gast
#2425876
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.
Gast
#2425899
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. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|