Bedingte Verzweigung - "GoTo" Kluge ?

 
Ich versuche, eine 'Kluge' / 'Umgehung' für bedingte Verzweigungen/GoTo in MQL4 zu finden
 
Sie brauchen nicht zu klug zu sein. Programmieren Sie es einfach richtig und das Problem löst sich normalerweise von selbst. Poste das Problem und deinen Code.
int nu=0; switch (nu){
   default:
   :
   if (condition) break;
   :
}
for(int nu=0; nu <= 0; nu++){
   :
   if (condition) break;
   :
}
if (nu == 0) Print("break was taken");
 
https://docs.mql4.com/basis/operators/if

https://docs.mql4.com/basis/operators/switch

 

Ich denke, dass wir uns hier auf unterschiedliche Dinge beziehen. Ich möchte in der Lage sein, an JEDE Stelle innerhalb des Programms zu springen, im Gegensatz zum einfachen Überspringen von etwas, das die Bedingungen nicht erfüllt, und einfach zu den nächsten sequentiellen Anweisungen , Funktionen usw. überzugehen.

Die meisten modernen "strukturierten" Programmiersprachen lassen die Verwendung von GoTo-Befehlen nicht zu, da sie ein echter Albtraum sein können. Die Bezeichnung "strukturiert" bezieht sich auf die Tatsache, dass sie die Verwendung von GoTo-Anweisungen nicht zulassen. Wenn sie jedoch mit Bedacht eingesetzt werden, können sie manchmal sehr nützlich sein. Die Probleme, die sich aus ihrer Verwendung ergeben können, sind jedoch so groß, dass sie mit dem Vorbehalt verwendet werden müssen: 'Verwendung auf eigene Gefahr!'

Eine andere Möglichkeit ist es, verschiedene externe Unterprogramme, Module, Variablen, Funktionen usw. zu haben, die man bei Bedarf "aufrufen" kann. Entweder innerhalb des Hauptprogramms? oder in separaten Programmen. Im Allgemeinen führen diese ihre spezifische Funktion aus und geben dann die resultierenden Daten an das Hauptprogramm zurück, um sie zu verwenden. Diese finden sich in einigen modernen strukturierten Programmiersprachen und sind nicht so gefährlich wie die Verwendung von "GoTo"-Befehlen. Vielleicht ist die Verwendung von Include-, Library- oder sogar .dll-Dateien dafür geeignet? Ich habe noch nicht herausgefunden, wie ich Variablen, Daten, Funktionen usw. aus diesen anderen Dateien in das Hauptprogramm zurückgeben kann. Auch nicht, ob ich sie tatsächlich auf diese Weise nutzen kann? Vielleicht kann ich dies in einigen Fällen mit der Verwendung von globalen Variablen im EA erreichen.

 
Danke OneWithZachy
 
FourX:
Vielen Dank OneWithZachy

Wirklich???,

Ich habe deinen Thread damals gelesen, deine Bewertung gesehen und habe keine Ahnung, was Kluge ist, also keine Antwort :)

Um an eine Funktion zu übergeben, kannst du ihren Wert übergeben oder als Parameter übergeben, um an eine DLL zu übergeben, solltest du dir dieses Video von Patrick S Nouvion ansehen

Mehr erfahren?

Schreiben Sie zurück, wenn Sie mehr Qs haben :)

 

Ich stimme zu, wenn Sie in Funktionen programmieren, brauchen Sie GoTo nicht.

 
onewithzachy:

Wirklich???,

Ich habe deinen Thread damals gelesen, deine Bewertung gesehen und habe keine Ahnung, was Kluge ist, also keine Antwort :)

Um an eine Funktion zu übergeben, kannst du ihren Wert übergeben oder als Parameter übergeben, um an eine DLL zu übergeben, solltest du dir dieses Video von Patrick S Nouvion ansehen

Mehr erfahren?

Schreiben Sie zurück, wenn Sie mehr Fragen haben :)

Ich habe mich noch nicht allzu sehr mit der Funktion 'Call' beschäftigt. Ich hoffe, dass ich herausfinden kann, wie man in den EA-Programmen an bestimmte Stellen springt (allerdings nicht FTL (< 8) und zu bestimmten Stellen geht, die nicht der Reihe nach aufgerufen werden. Nach dem, was Sie gesagt haben, weiß ich nicht, ob das für das, was ich tun will, funktioniert. Aber es ist auf jeden Fall gut zu lernen und zu wissen. Alles zu seiner Zeit und je nach Bedarf.

Eine 'Kluge' ist etwas, das aus einer Vielzahl von Dingen 'zusammengeschustert' wird, um etwas zu erreichen, das normalerweise nicht gemacht wird. In diesem Fall versuche ich, eine "GoTo"-Funktion/einen "GoTo"-Befehl in MQL4 zusammenzuschustern, die/der dies nicht als Standardfunktion, -kapazität und -teil von MQL4 hat. Wie bereits erwähnt, gibt es gute Gründe, warum man sie nicht haben sollte. Früher war dies ein Standardbestandteil vieler Programmiersprachen, aber da sie sehr leicht eine Menge Probleme verursachen können, wurden sie meines Wissens aus (fast?) allen Programmiersprachen entfernt. Ich glaube nicht, dass C so etwas hat, oder? Sie wurden aus COBOL entfernt, und ich glaube nicht, dass es sie in FORTRAN oder Visual BASIC gibt?

Ein typisches Beispiel: Vor Jahrzehnten schrieb ich ein kleines, 5- oder 6-zeiliges BASIC-Programm (Segment) mit mehreren, verschachtelten und bedingten Verzweigungsbefehlen (GoTo). Selbst mit eingeschaltetem 'Tracer' konnte ich nicht herausfinden, was es tat! )< 8) Zu Ihrer Information: Der Befehl für 'Tracer On' lautete 'TRON' - kennen Sie die Abkürzung? Das war der Name des ersten digitalen Animationsfilms, der SEHR lahm war, von den Walt Disney Studios produziert wurde und nicht wirklich eine Handlung hatte. Es gab nur ein paar Motorräder, die angeblich mit Überlichtgeschwindigkeit durch ein (mikroskopisches?) (Licht?) Labyrinth/Matrix rasten. Ich glaube, sie haben ein Remake davon gemacht. Aber da der erste Teil so schlecht war, habe ich ihn nicht gesehen. GI ist immer noch GO = GIGO

 
SDC:

Ich stimme zu, wenn Sie in Funktionen programmieren, brauchen Sie GoTo nicht

Hallo SDC,

Wie bei den meisten Programmierungen besteht MQL4 praktisch nur aus "Funktionen ", die außer dem Springen über einige Zeilen keine echte "GoTo"-Funktion haben, die ich versuche herauszufinden, wie man sie in einem MQL4 EA ausführt. Ich bin miralso nicht sicher, womit Sie "einverstanden" sind und was Sie meinen und worauf Sie sich im Zusammenhang mit dieser Suche beziehen? Bitte erläutern Sie das. Ich bin nicht argumentativ. Es hört sich an, als hätten Sie etwas im Sinn und ich würde gerne wissen, was es ist und wie es für uns von Nutzen sein könnte.

 
Ich habe GOTOs schon zu Zeiten von BBC Basic benutzt... Ich habe BBC BASIC sogar ca. 7 Jahre lang hauptberuflich benutzt... sogar BBC Basic hatte GOSUB und RETURN, so dass Unterprogramme(Funktionen) verwendet werden konnten... warum sollten Sie jemals etwas verwenden wollen, das einem GOTo in MQL4 ähnelt? vielleicht können Sie Ihren Bedarf erklären?
Grund der Beschwerde: