Fehler, Irrtümer, Fragen - Seite 3129
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
In Ihrem Fall ist dies nicht der Fall, da beide Bedingungen erfüllt sein müssen. Aber wenn Sie das
dann, ja. Wenn die Bedingung "a" erfüllt ist, wird die zweite Bedingung nicht geprüft. Sie haben viele Jahre lang dafür gekämpft, und jetzt schlagen Sie vor, ins vorige Jahrhundert zurückzukehren...Seltsamerweise gibt es aber bei a=true nicht nur bei || sondern auch bei && keine Überprüfung des Rests. Wie lässt sich das sonst erklären (suchen Sie nicht in der Funktionsweise des Indikators, wir sprechen hier über den Code):
Das Terminal ist still. Aber wenn Sie die
zu
der Programmierer ändert es und die berüchtigte Meldung 'array out of range' erscheint, weil der Programmierer im Gegensatz zum ersten Fall sofort über ein Array mit einem zu hohen Index stolpert.
Ich wage nicht, es einen Fehler zu nennen. Ich möchte nur sagen, dass mir eine Besonderheit der if-Anweisung aufgefallen ist. Ich vermute, dass dies auch für andere Sprachen gilt.
Wenn sich a als wahr herausstellt, springt check zu Array[over_index] und hier beginnt das Terminal durch den Teil'array out of range' abzustürzen, der durchaus wahr ist. Aber wenn sich a als falsch herausstellt, prüft das Terminal nicht auf die Array[over_index]-Bedingung und damit auf Index-Redundanz, und if überspringt weiter und der Programmierer weiß nicht, dass es ein Array mit einem nicht existierenden Index in seinem Programm gibt... oder vielmehr eine bestehende, aber überflüssige.
Vielleicht sollte es einen Fix dafür geben, so dass die Prüfung auf "array out of range" bis zum Ende der if-Schleife durchgeführt wird und die gleiche Meldung ausgegeben wird? Oder wird sie die Geschwindigkeit des Bedieners erheblich verringern?
In welcher Sprache ist die Syntax anders? "Syntax bedeutet wörtlich nicht nur komponieren, sondern auch arrangieren...".
Wenn Sie prüfen wollen, ob es ein "Array außerhalb des Bereichs" gibt, ändern Sie die Reihenfolge.
if(Array[over_index]>val && a) {...}
In welcher Sprache ist die Syntax anders?"Syntax bedeutet wörtlich übersetzt nicht nur Zusammensetzen, sondern auch Ordnen...".
Wenn Sie prüfen wollen, ob es ein "Array außerhalb des Bereichs" gibt, ändern Sie die Reihenfolge.
Die Bestellung ist wünschenswert, da Sie überprüfen müssen.
Wenn zum Beispiel "a" häufiger geändert wird, ist es besser, es als erstes Argument anzugeben.
Die Reihenfolge ist erwünscht, da Kontrollen notwendig sind.
Wenn sich zum Beispiel "a" häufiger ändert, ist es besser, es als erstes Argument anzugeben.
Nein, die erste hängt von den Hauptbedingungen ab, die anderen sind nur zusätzliche Bedingungen.
So ist es beispielsweise irrelevant, die Stunde der aktuellen Arbeitszeit zu überprüfen, wenn die Arbeitszeit noch nicht begonnen hat.Tatsächlich bin ich zufällig auf diese Funktion gestoßen. Das ist nicht das, was ich wollte...
oder
Das Problem ist, dass n ziemlich groß sein kann, deshalb wollte ich diese lange Kette von Bedingungen in ein kompaktes für zusammenfassen. Ich habe es auf diese Weise versucht:
aber es stellte sich heraus, dass es ein ziemliches Durcheinander war. Zumindest, weil h_plus mit diesem Algorithmus die gesamte Summe der geprüften Bedingungen nehmen muss, einschließlich der Bedingung mit redundanter Index-Array-Prüfung, was im ersten entpackten if, ohne for, nicht passiert. Und andere Anstriche verderben das Bild.
Ist das überhaupt eine Überlegung wert? Ist es möglich, dies zu tun?
In welcher Sprache ist die Syntax anders? "Syntax bedeutet wörtlich übersetzt nicht nur Zusammensetzen, sondern auch Ordnen...".
Wenn Sie prüfen wollen, ob es ein "Array außerhalb des Bereichs" gibt, ändern Sie die Reihenfolge.
Man weiß nicht immer im Voraus, was man vor und was man nach dem Text einfügen soll.
Nein, die erste legt die Grundbedingungen fest, die anderen sind nur zusätzliche Bedingungen.
So ist es beispielsweise irrelevant, die Stunde der aktuellen Arbeitszeit zu überprüfen, wenn die Arbeitszeit noch nicht begonnen hat.Ja, zuerst prüfen wir die Signalbedingungen, gehen das Array durch und vergleichen, prüfen den aktuellen Preis, und dann stellt sich heraus, dass der Zeitpunkt nicht stimmt, aber vorher werden viele komplizierte Aktionen durchgeführt.
Oder?
Ja, zuerst prüfen wir die Signalbedingungen, gehen durch das Array und vergleichen, prüfen den aktuellen Preis, und dann stellt sich heraus, dass der Zeitpunkt nicht richtig ist, aber davor sind viele komplizierte Aktionen durchgeführt worden.
Oder?
Siehe
Wer hat Ihnen gesagt, dass "a" aus der obigen Bedingung immer falsch sein würde?
Tatsächlich bin ich zufällig auf diese Funktion gestoßen. Das ist nicht das, was ich wollte...
oder
Das Problem ist, dass n ziemlich groß sein kann, deshalb wollte ich diese lange Kette von Bedingungen in ein kompaktes für zusammenfassen. Ich habe es auf diese Weise versucht:
aber es stellte sich heraus, dass es ein ziemliches Durcheinander war. Zumindest, weil h_plus mit diesem Algorithmus die gesamte Summe der geprüften Bedingungen nehmen muss, einschließlich der Bedingung mit redundanter Index-Array-Prüfung, was im ersten entpackten if, ohne for, nicht passiert. Und andere Anstriche verderben das Bild.
Ist das überhaupt eine Überlegung wert? Ist es möglich, zu viel zu kaufen?
Dieser Code ist mir völlig unverständlich
Was bedeutet das Zeichen & in diesem Code? Und in welcher Schleife soll if(h_plus) ausgeführt werden? Haben Sie keine gebogenen Klammern übersehen?