Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1737
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Natürlich wartet das Programm nicht darauf, dass das Terminal in einem separaten Thread einige Daten protokolliert.
Danke, ich meine
Ich verstehe nicht, warum ab und zu "-1" geworfen wird, wenn nach dem Break der Print(i); vor dem Break steht i-- und if (i==0), das ist der Exit-Befehl, wenn i innerhalb des Operators bereits 0 erreicht hat. Da i noch weiter unten im Code, in Close[i], verwendet wird, produziert es den Fehler "out of range
Ich verstehe nicht, warum ab und zu "-1" geworfen wird, wenn nach dem Break der Print(i); vor dem Break steht i-- und if (i==0), das ist der Exit-Befehl, wenn i innerhalb des Operators bereits 0 erreicht hat. Da i noch weiter unten im Code, in Close[i], verwendet wird, produziert es den Fehler "out of range
Ich verstehe nicht, warum ab und zu "-1" geworfen wird, wenn nach dem Break der Print(i); vor dem Break steht i-- und if (i==0), das ist der Exit-Befehl, wenn i innerhalb des Operators bereits 0 erreicht hat. Da i noch weiter unten im Code, in Close[i], verwendet wird, produziert es den Fehler "out of range
Nach der Pause wird die Schleife zum nächsten Operator nach der Schleife verlassen, nachdem die Schleife bis zum Ende der Iteration an diesem Punkt iteriert und eine neue begonnen hat.
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// Im Protokoll steht (-1), wie kommt es... und daher dasFehlerfeld außerhalb des Bereichs, weil Close[-1] nicht passiert.
Ich meine, verstehe ich das richtig, dass nach der Pause in der Kopfzeile(i; i>0; i--) der dritte Ausdruck "i--" noch ausgeführt wird?
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// Das Protokoll sagt (-1), wie also... und daher dasFehlerfeld außerhalb des Bereichs, weil Close[-1] nicht stattfindet.
Ich meine, verstehe ich das richtig, dass nach der Pause in der Kopfzeile(i; i>0; i--) der dritte Ausdruck "i--" trotzdem ausgeführt wird?
Korrekt schreibt
Sie nehmen nicht nur in der Kopfzeile, sondern auch im Hauptteil der Schleife ab.Er schreibt korrekt.
Fragen Sie mich nicht, was für einen Unsinn ich in meinen Code schreibe. Ich möchte nur die Nuancen dieses Operators verstehen) Es scheint, dass ich im Körper angegeben habe "es ist Zeit, hier zu verlassen, weil i=0", aber der Operator nimmt und führt den Ausdruck noch einmal aus, obwohl er die Kontrolle an den nächsten Operator übergeben sollte
Fragen Sie mich nicht, was für einen Blödsinn ich schreibe. Ich möchte nur die Nuancen dieses Operators verstehen) Es ist wie im Körper, den ich angegeben habe "es ist Zeit, hier zu verlassen, weil i=0", aber der Operator nimmt und führt den Ausdruck noch einmal aus, obwohl er die Kontrolle an den nächsten Operator übergeben sollte
Ja, das haben Sie, aber Sie haben es vor dieser Prüfung weggenommen. Schreiben Sie es so
wird ein anderes Ergebnis erzielt
Ja, das haben Sie, aber Sie haben es vor dieser Prüfung weggenommen. Schreiben Sie es so
aah... Ich hab's. Verstanden.
Vielen Dank für Ihre prompten Antworten.
Ahh... Ich hab's. Verstanden.
Vielen Dank für Ihre prompten Antworten.
Ihr Code druckt 0, nicht -1...
Wahrscheinlich wird -1 von irgendwo anders gedruckt, höchstwahrscheinlich ist der gesamte Code in den Druckern...
Bevor Sie versuchen, das Problem zu lösen, müssen Sie es identifizieren... Vergewissern Sie sich, dass er da ist, und finden Sie ihn, bevor Sie ihn lösen...