Fehler, Irrtümer, Fragen - Seite 2889
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
Sie haben eine Zufallszahl 0, ich habe 540016640
aber es sind immer noch Zufallszahlen.
Ich dachte, das MQ wurde gestrichen.
Ich dachte, die MQ wurde gestrichen.
Bei globalen Variablen scheinen sie mit Null initialisiert zu werden, aber im Körper von Funktionen bin ich beim ersten Durchlauf auf unterschiedliche Initialisierungen gestoßen. Ich versuche, vor der Verwendung immer zu initialisieren. Ich stimme zwar zu, aber das Verhalten muss eindeutig sein.
Und eine weitere Deklaration im Schleifenkörper, in Klammern, macht die Variable lokal für die Schleife. Es steht nur nicht in den Unterlagen.
Außerdem gibt der Compiler keine Warnung aus, dass die Variable nicht initialisiert ist.
Print(...) warnt Sie möglicherweise nicht, wenn der Parameter durch eine nicht konstante Referenz übergeben wurde
Wenn die Schleifen gleich sind, dann sollte auch das Verhalten des Compilers gleich sein, aber es ist anders. Genau hier liegt der Fehler. Sie haben erklärt, warum es im Fall (1) eine Warnung gibt, erklären Sie dann, warum es im Fall (2) keine gibt? Was hat sich im Prinzip geändert? Und wenn eine nicht initialisierte Variable verwendet wird, warum ist dann das Endergebnis richtig, wenn der Code ausgeführt wird?
Es gibt eine solche Wissenschaft - die Logik. Wenn A und B gleich sind und A rot ist, muss B auch rot sein, nicht grün
Ich habe kein Programmierstudium absolviert, ich kann nur logisch spekulieren, so wie Wassili Iwanowitsch und Petka über Logik spekuliert haben.
Im ersten Fall wird die gesamte Zeichenkette ausgeführt
und hier wird die Variable j nicht initialisiert, sondern ihr Wert wird der Variablen i zugewiesen
Im zweiten Fall wird, obwohl die Variable j nicht initialisiert ist, in der nächsten Zeile, in der sie verwendet wird, nicht ihr Wert zugewiesen, sondern ihr Wert ist es. Mit anderen Worten: Die Variable j wird mit dem Wert der Variablen i initialisiert.
Hier ist auch eine Variante ohne Warnungen
Ich habe nicht studiert, um Programmierer zu werden, ich kann nur logisch spekulieren, so wie Wassili Iwanowitsch und Petka über Logik spekuliert haben.
Im ersten Fall wird die gesamte Zeichenkette ausgeführt
und hier wird die Variable j nicht initialisiert, sondern ihr Wert wird der Variablen i zugewiesen
Und wer hat es studiert? Ich denke, die meisten Leute hier (wie ich) sind Autodidakten.
Sie müssen den for-Schleifenoperator studieren, um die Abfolge der Operationen zu verstehen. In (1) wird der Variablen j der Wert von i+1 zugewiesen
j = i+1
bevor es rechts neben dem Zuweisungsoperator erscheint
Die globalen Variablen scheinen mit Null initialisiert zu sein, aber der Körper der Funktion ist beim ersten Durchlauf auf andere Initialisierungen gestoßen.
Ich versuche immer, vor der Benutzung zu initialisieren. Ich stimme zwar zu, aber das Verhalten sollte eindeutig sein.
Und eine weitere Deklaration im Schleifenkörper, in Klammern, macht die Variable lokal für die Schleife. Die Ärzte haben es einfach nicht drauf.
Ja, ich initialisiere auch immer Variablen, das ist wie zwei mal zwei,ich sollte immer daran denken.
Das habe ich von der Sprache C in den Kopf bekommen))
Dieses Beispiel einer Schleife mit einer nicht initialisierten Variablen ist also schlechte Praxis.
Ja, ich initialisiere auch immer Variablen, das ist wie zwei mal zwei,muss man sich immer merken.
Das habe ich von der Sprache C in den Kopf bekommen))
Dieses Beispiel einer Schleife mit einer nicht initialisierten Variablen ist also schlechte Praxis.
Sie müssen ihn initialisieren, aber nur mit einem sinnvollen Wert. Im obigen Beispiel gibt es keinen solchen Wert, so dass dies keine schlechte Praxis ist und die einzig mögliche Methode darstellt. Andernfalls würde es eine doppelte Initialisierung geben
Initialisieren, aber nur mit einem sinnvollen Wert. In dem obigen Beispiel gibt es keinen solchen Wert, also ist die Praxis nicht schlecht, sondern die einzig mögliche. Andernfalls käme es zu einer doppelten Initialisierung
Was würde es ändern, wenn Sie
Was würde sich ändern, wenn sie mit j=333 initialisiert würde?
Und warum bei Null und nicht bei j=333? D.h. es handelt sich um eine sinnlose Initialisierung, die einen schwer zu findenden Fehler verbergen kann.
Warum Null und nicht etwa 333? D.h. es handelt sich um eine bedeutungslose Initialisierung, hinter der sich ein schwer zu erkennender Fehler verbergen kann.
Wenn Sie einen Fehler bei diesem Wert abfangen müssen, initialisieren Sie ihn mit 333 ))
Es ist nur ein Startwert.