Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   continue vs else if (http://www.expert-advisor.com/forum/showthread.php?t=7014)

Elfenstein 04.06.21 11:49

continue vs else if
 
Hallo,

wenn ich in einer For-Schleife nur einmal if und dann immer else if else if usw. habe, würde dann ein continue vor der letzten Klammer in den else if's der Geschwindigkeit der For-Schleife gut tun oder ist die Geschwindigkeit der For-Schleife dann trotzdem genau so schnell? Denn wenn ich das continue weglasse, dann würde in der For-Schleife ja trotzdem weiter überprüft ob nicht vielleicht doch noch ein if oder anderes noch kommt, obwohl in mein Fall nur else if's sich in der For-Schleife befinden. Denke ich da richtig?

Mit freundlichen Grüßen
Elfenstein

Ca$hDigger 04.06.21 15:06

Sobald in einem if - else if - Strang das erste else if erfüllt ist, wird danach ja der ganze if/else if Strang abgebrochen denn der Strang geht nur solange die Bedingungen unerfüllt sind.
Daher ist in diesem Fall ein continue nicht nötig um die Geschwindigkeit zu verbessern (außer nach dem if else Strang kommt noch anderer Code der bewusst übersprungen werden soll).

Continue mach erst dann Sinn wenn der aktuelle Schleifendurchlauf unterbrochen werden soll und der nachfolgende Code innerhalb der Schleife bewusst nicht ausgeführt werden soll.

Indikator-Trading 04.06.21 17:43

Hier ein keines Beispiel von mir, wie continue und break innerhalb eine For-Schleife wirken:

Code:

  int i = 1;
  for(i = 1 ; i <= 5 ; i++)
  {
    Print("Schleifendurchlauf Nr. " , IntegerToString(i));
    if(i==2)
      continue;
    if(i==4)
      break;
    Print("Ende dieses Schleifendurchlaufes erreicht! Durchlauf ", i , " von " ," 5");
  }
  Print("Schleife Beendet mit ", i , " Durchläufen!");

Hier die Ausgabe dazu:

Schleifendurchlauf Nr. 1
Ende dieses Schleifendurchlaufes erreicht! Durchlauf 1 von 5
Schleifendurchlauf Nr. 2
Schleifendurchlauf Nr. 3
Ende dieses Schleifendurchlaufes erreicht! Durchlauf 3 von 5
Schleifendurchlauf Nr. 4
Schleife Beendet mit 4 Durchläufen!

Mit continue läuft die jeweilige Schleife im nächsten Schritt weiter. Wenn du break nutzt, wird sie abgebrochen.

Gruß Timo

Elfenstein 06.06.21 01:54

Dankeschön fürs Mitdenken. Also bringt continue der Geschwindigkeit einer For-Schleife nichts. Ok. Tschau.

Mit freundlichen Grüßen
Elfenstein


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:46 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum