Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4731
Beiträge: 42210
Benutzer: 7.087
Aktive Benutzer: 152
Links: 83
Wir begrüßen unseren neuesten Benutzer: lukasbin
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 21:38).
Neue Benutzer:
vor einem Tag
- lukasbin
vor 2 Tagen
- Luthergam
vor 3 Tagen
- banaguitar
vor einer Woche
- Denn
vor einer Woche
- Overoll

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 38
Gesamt: 39
Team: 0
Team:  
Benutzer:  dax09
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 504
AVT befindet sich auf einem aufstrebenden Ast
Standard Schleifenbedingungen

Wann ist es sinnvoller eine der beiden Auswahlkriterien zu verwenden?
Beispiel:
Code:
for(int i=0; i<100; i++)
{
   //1. Möglichkeit: Ausschluß aller anderen
   if(Bedingung!=erfüllt) continue;
   ActionBeiBedingungErfüllt;

   //2. Möglichkeit: nur bei Bedingung
   if(Bedingung==erfüllt) ActionBeiBedingungErfüllt;
}
Gibt es Gründe, eine Art zu bevorzugen, möglicherweise um Fehler auszuschließen?
Oder ist das letztlich egal?
Freue mich, Eure Meinung dazu zu hören.
AVT
Mit Zitat antworten
  #2 (permalink)  
Alt vor einer Woche
Mitglied
 
Registriert seit: Dec 2015
Beiträge: 85
TogoTiger befindet sich auf einem aufstrebenden Ast
Standard

Ist egal. Persönlich bevorzuge ich die 2. Variante. Bin ein visueller Typ und kann den Code besser lesen, wenn das, was beim IF passieren soll, eingerückt wird.
Wenn aber viel Code kommt, verwende ich auch schon mal Variante 1.
Mit Zitat antworten
  #3 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 504
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von TogoTiger Beitrag anzeigen
Ist egal. Persönlich bevorzuge ich die 2. Variante. Bin ein visueller Typ und kann den Code besser lesen, wenn das, was beim IF passieren soll, eingerückt wird.
Wenn aber viel Code kommt, verwende ich auch schon mal Variante 1.
Danke für Deinen Kommentar. AVT
Mit Zitat antworten
  #4 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.557
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun ja, das kommt bei mir v.a. darauf an, was nach if in der Schleife steht.
Schon allein die Tatsache, dass falls 2. geschrieben wird und nach if weiterer Code steht, der auch für den Fall false abgearbeitet werden muss, verbietet sich automatisch die Variante 1.
Insofern kann ich dann diese Frage von @AVT:
"Oder ist das letztlich egal?"
eindeutig mit Nein beantworten.
D.h. bei z.B. verschachtelten Schleifen würde ich Variante 1. wählen.

Aber ich denke, @AVT meinte in der Tat nur diese eine if-Abfrage innerhalb der Schleife. In der Dauer der Abarbeitung beider Varianten gibt es keine signifikanten Unterschiede. Also wäre es dann auch wurscht, welche Variante man wählt.
Dann wäre die Antwort: Ja.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.

Geändert von traderdoc (vor einer Woche um 09:28 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt vor einer Woche
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 340
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Für "um Fehler auszuschließen" ist definitiv Variante 2 zu bevorzugen, Begründung siehe traderdoc. continue eher nur wenn man bewusst bestimmten Code überspringen möchte.
Zudem würde ich immer geschweifte Klammern nutzen, dies kann zusätzlich dafür sorgen Fehler auszuschließen wenn der Code zB um weitere Aktionen erweitert wird.
Mit Zitat antworten
  #6 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 504
AVT befindet sich auf einem aufstrebenden Ast
Standard

Danke für all Eure Antworten.
Ich habe mir angewöhnt, die 2. Variante zu schreiben und damit die genauen Bedingungen festzulegen.
Nun habe ich aber beim Codelesen oft schon die 1. Variante gesehen, was mich zu der Frage brachte.

@Ca$Digger
Klammern stimmt, sind bei mir schon aufgrund der Debug-Prints (kann man ja kommentieren, wenn nicht mehr gebraucht ).

Mal angenommen, ich untersuche einen Chart, auf dem etliche Objekte sind, mit interessieren aber nur grüne Horizontallinien.
Dann kann ich
entweder 1. erst mal alles ausschließen, was nicht Horizontallinie ist, und dann sehen ob der Rest grün ist.
oder 2. direkt nur nach grünen Horizontallinen suchen.

Erweiterbar sind bei Version gleichermaßen. Brauche ich irgendwann auch rote Horizontallinien, suche ich
im 1. Fall dann zusätzlich nach roter Farbe
im 2. Fall suche ich direkt nach roten Horizontallinien
Die Codelänge hat bei mir noch nie eine Rolle gespielt, Hauptsache klar und verständlich.

@traderdoc
Ja, ich meinte tatsächlich eine if-Abfrage.
Daß es in der Dauer der Abarbeitung wenig Unterschiede gibt, ergibt sich ja schon daraus, daß jedes Objekt geprüft werden muß (egal auf was).

Fazit für mich: es ist egal, ich muß meine Gewohnheiten nicht ändern.
AVT
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2021 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------