Geschrieben 30. September 201411 Jr. comment_152117 Hallo,grundsätzlich verwende ich gerne das Konstrukt: switch (true) { case (a == b): ... case (a == c): ... u.s.w. Scheint es in Mql4 nict zu geben, richtig? Gruss Kai Bearbeitet 30. September 201411 Jr. von whipsaw code tag eingefügt Melden
Geschrieben 30. September 201411 Jr. comment_152125 Laut Doku schon. http://docs.mql4.com/basis/operators/switch Melden
Geschrieben 1. Oktober 201411 Jr. comment_152145 Nimm doch else if() if(x=='a'){ y=1; } else if (x=='b'){ y=2; z=3; } else if(x=='c'){ y=4; } else Print("ERROR"); http://docs.mql4.com/basis/operators/if Melden
Geschrieben 2. Oktober 201411 Jr. Autor comment_152148 Laut Doku schon. http://docs.mql4.com/basis/operators/switch Die Docu kannte ich. Und sie liest sich auch so, dass es nicht gehen dürfte: "The constant expression can't contain variables or function calls. Expression of the switch operator must be of integer type."Jetzt habe ich aber noch mal probiert und folgendes geht. Switch operator ist doch jetzt bool? Das es vorher nicht ging, lag an der Syntax. man muss die Variable jeweils in Hochkomma innerhalb der Klammer. <code> int a = 2; int b = 3; switch(true) { case ('a'=='b'): Print("CASE A == B"); break; case ('a'<='b'): Print("CASE A <= B"); default: Print("default"); break; }</code> PS: Sorry, ich hab mir jetzt zum zweiten mal nen Wolf gesucht, wie die code-tags funktionieren. Ich finds nicht.Gruss kai Bearbeitet 2. Oktober 201411 Jr. von kai700 Melden
Geschrieben 2. Oktober 201411 Jr. Autor comment_152149 Nimm doch else if() if(x=='a'){ y=1; } else if (x=='b'){ y=2; z=3; } else if(x=='c'){ y=4; } else Print("ERROR"); http://docs.mql4.com/basis/operators/if Manchmal brauch ich mehr als 3 Bedingungen. Und ich finde switch (true) übersichtlicher. Gruss Melden
Hallo,
grundsätzlich verwende ich gerne das Konstrukt:
switch (true) { case (a == b): ... case (a == c): ... u.s.w.Scheint es in Mql4 nict zu geben, richtig?
Gruss Kai
Bearbeitet von whipsaw
code tag eingefügt