[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 111

 
Können Sie mir sagen, ob break: (1) innerhalb von {..} oder (2) nach } stehen sollte, da im Beispiel der switch-Anweisung nur eine Aktion nach case berücksichtigt wird.
int a; double b; string c;

switch (a) // --- 1.
{  
   case 1:  { b=Ask+SL_1*Point; c="with stop-loss = "+a; break; }
   case 2:  { b=Ask+SL_2*Point; c="with stop-loss = "+a; break; }
   default: { b=Ask+SL_0*Point; c="with stop-loss = 0"; }
}
switch (a) // --- 2.
{  
   case 1:  { b=Ask+SL_1*Point; c="with stop-loss = "+a; } break;
   case 2:  { b=Ask+SL_2*Point; c="with stop-loss = "+a; } break;
   default: { b=Ask+SL_0*Point; c="with stop-loss = 0"; }
}
 

Klammern sind überhaupt nicht notwendig. Aber wenn Sie das tun - dann ist der Bruch im Inneren.

Obwohl... wen kümmert's, es muss trotzdem ausgeführt werden.

 
Mathemat:

Ich habe über {...} in case in Analogie zu if nachgedacht. Wenn es mehr als 1 Aktion gibt, sollte es {...} sein. Wenn die Philosophie des case-Operators so ist, dass alles (!) nach ihm ausgeführt wird, dann sollten wir meines Erachtens {...} entfernen, wie:
switch (a)
{  
   case 1:  b=Ask+SL_1*Point; c="with stop-loss = "+a; break;
   case 2:  b=Ask+SL_2*Point; c="with stop-loss = "+a; break;
   default: b=Ask+SL_0*Point; c="with stop-loss = 0";
}
 
Nun, so steht es da.
 
paladin80:
Ich dachte an {...} in case in Analogie zu if. Wenn es mehr als 1 Aktion gibt, brauchen Sie {...}. Wenn die Philosophie des case-Operators so ist, dass alles (!) nach ihm ausgeführt wird, dann sollten wir meines Erachtens {...} ganz abschaffen, wie:

Alles wird vor der Pause ausgeführt, sonst Standard.

d.h.

case 1:  b=Ask+SL_1*Point; c="with stop-loss = "+a; break;
или
case 1:  b=Ask+SL_1*Point; c="with stop-loss = "+a; return(09,05);
приемлема и работает.

{...} wird von case bis break (try output;)) impliziert .

 
Nur, eine kleine Ausnahme. GO TO-Operator, aber nur innerhalb von {} :)
 
costy_: Alles vor der Pause ausführen, sonst Standard.

Ja, und deshalb lässt sich Ihr Code überhaupt nicht kompilieren:

return(09,05);
 
Können Sie mir etwas sagen: Ich verwende mehrere Arrays in meinen Berechnungen und ich muss zwischen Arrays wechseln, aber es ist nicht sehr bequem, konstante Bedingung vor jeder Verwendung des erforderlichen Arrays zu verwenden. Gibt es irgendwelche Referenzvariablen in MT4, um die Bedingung einmal zu überprüfen und dann in sie zu schreiben, welches Array ich brauche, um zu arbeiten, ich habe es nicht in der Dokumentation gefunden.
 

Nein, Variablen (und auch Arrays) können nur per Referenz an eine Funktion übergeben werden.

 

Freunde, es stellt sich eine Frage:

TimeHour - Gibt eine Stunde für eine bestimmte Zeit zurück.

Versteht sie den Wert von 0 und 24?

Falls geschrieben:

extern double TimeStart = 24.0;

if (TimeHour(TimeCurrent()) >= TimeStart )
   {
    ...
   }

Ist diese Funktion realisierbar?

Oder Sie brauchen eine andere Bedingung: if (TimeStart >= 24.0) TimeStart = TimeStart - 24.0;

extern double TimeStart = 24.0;

if (TimeStart >= 24.0)  TimeStart = TimeStart - 24.0;

if (TimeHour(TimeCurrent()) >= TimeStart )
   {
    ...
   }
Kann die erste Option richtig funktionieren? Oder sollte die zweite durchgeführt werden?