[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 721

 
Abzasc:

Es geht nicht darum, Variablen, viele Bedingungen und Zähler zu multiplizieren.




Es geht also darum, richtig zu schreiben und nicht darum, sprachliche Abkürzungen zu verwenden:

int a;
for(a=0;a<8;a++){
//здесь что то делаем
}
for(a=0;a<8;a++){
//делаем что нибудь другое
}
 
Abzasc:

Es geht nicht darum, Variablen, viele Bedingungen und Zähler zu erstellen.

Nun, bitte, der Compiler erlaubt Ihnen, solche Dinge zu tun...

//+------------------------------------------------------------------+
int start()
  {
  bool flag;
  
   if(flag){
      for(int a = 0; a < 10;a++){
         Print("a = ", a);
      }
   }else{
      for(a = 10; a > 0;a--){
         Print("a = ", a);
      }
   }
  }
//+------------------------------------------------------------------+
Das Standardflag ist False, so dass die erste for-Schleife, in der die Variable a deklariert ist, nicht ausgeführt wird, was aber nicht verhindert, dass dieselbe "nicht deklarierte" Variable im else-Zweig verwendet wird : )
 
Abzasc:

Die Bedingung, wenn

hier tun wir etwas

sonst, wenn eine andere Bedingung

etwas anderes tun

Es geht nicht darum, Variablen, viele Bedingungen und Zähler zu erstellen.

Die Variable muss dabei nicht neu initialisiert werden. Machen Sie alles so, wie Sie es geschrieben haben, und Ihre Variable a wird an den richtigen Stellen in Ihren logischen Verzweigungen ohne Neuinitialisierung verwendet werden. Erklären Sie es einmal und nutzen Sie es zu Ihrem Nutzen und zum Nutzen der Menschheit... :) Die Hauptsache ist, dass man sich nicht verirrt, wo und wofür man es benutzt...
 
ToLik_SRGV:

die erste for-Schleife, in der die Variable a deklariert wird, wird also nicht ausgeführt

Die Schleife muss immer ausgeführt werden.
 
IgorM:


Es geht also darum, richtig zu schreiben, anstatt Abkürzungen zu verwenden:

Das ganze Problem war das Fehlen von {}, nicht wahr? Ich danke Ihnen!
 
artmedia70:
Die Variable muss dabei nicht neu initialisiert werden. Machen Sie alles so, wie Sie es geschrieben haben, und Ihre Variable a wird an den richtigen Stellen in Ihren logischen Verzweigungen ohne Neuinitialisierung verwendet werden. Erklären Sie es einmal und nutzen Sie es zu Ihrem Nutzen und zum Nutzen der Menschheit... :) Die Hauptsache ist, dass man sich nicht verirrt, wo und wofür man es benutzt...
Ich habe das getan, auf 715 Seiten, 18.07.2010 14:56, habe keine Klammern nach dem Zähler gesetzt...
 

Der oben gezeigte "Effekt" beweist, dass die MQL-Maschine zunächst die EX4-Datei nach deklarierten Variablen durchsucht und diese unabhängig von logischen Verzweigungen vollständig anlegt. Einerseits wird dadurch kein Arbeitsspeicher eingespart, andererseits kann man ähnliche Konstruktionen erstellen, obwohl dieser Stil meiner Meinung nach nicht die beste Option ist.

 
Abzasc:
Das ganze Problem lag in dem Fehlen von {}, nicht wahr? Herzlichen Dank!


Das ganze Problem lag in der Deklaration der Variablen:

int a;

Ich deklariere sie und verwende sie dann, wo und wann sie gebraucht wird, während Sie eine Variable wiederholt deklariert haben - höchstwahrscheinlich hat der Compiler sie nicht übersprungen

Wenn Sie nur eine Anweisung in der Schleife haben, dann brauchen Sie {} nicht, aber wenn Sie mehr haben, dann müssen Sie {} einfügen, sonst wird die Schleife nicht richtig berechnet

SZZY: Wenn Sie gerade erst angefangen haben, setzen Sie geschweifte Klammern nach for, Sie werden den Dreh später herausbekommen

 
ToLik_SRGV:

Der Code von IgorM gibt keine Fehler aus. Ich glaube nicht, dass a abhängig von der Anzahl der Erwähnungen in den Zweigen Speicherplatz zugewiesen wird, also ist es OK.
 
Abzasc:
Die Schleife muss immer ausgeführt werden.

Was hat die Schleife damit zu tun? Es ist nur ein Beispiel dafür, dass eine Variable, die in einem Block erstellt wurde, der nicht verwendet wird, immer noch im "Spiel" ist und während der gesamten start()-Methode sichtbar und verwendbar ist, ohne dass sie neu initialisiert werden muss, geschweige denn, dass sie vor der Wiederverwendung de-initialisiert wird.

Grund der Beschwerde: