2017-02-27 2 views
-2

Hier bin ich noch einmal. Dies ist anscheinend die einzige Art, wie ich lerne. Was ich mache ist eine For-Schleife. Ja. Etwas so einfaches. Dennoch habe ich "haben" ein Problem mit ihnen. Mehr oder weniger ein Problem mit Endlosschleifen. Was ich tun muss, ist eine Schleife, die von 10 ... 0 abwärts zählt. Es scheint einfach für einige von euch. Ja ich bin mir sehr bewusst. Ich bin nichts mehr als ein Student, der lernt.Infinite For Loops sind scheinbar knifflig.

Dies ist der Code, den ich habe:

 for (var i = 11; i >= 1; i++) { 
    console.log(i); 
    } 

ich an dieser Stelle steckte. Alles, was es tut, ist mein Browser jedes Mal abstürzen. Hilfe wird sehr geschätzt. Ich möchte eine gründliche Erklärung, was ich falsch mache, was ich tun sollte, und warum ich das härter gemacht haben könnte, als es sein musste. Vielen Dank!

+0

also warum genau erhöhst du ich? und ist es nicht immer größer als 1? – RSon1234

+0

Was meinst du? Oh am Ende? ich ++? –

+0

Wenn du um 11 beginnst und du i ++ benutzt, dann sagst du mir wann wird es aufhören? Sie möchten, dass es eine Schleife ausführt, während i> = 1. Wann wird i> = 1 in Ihrem Fall nicht wahr? – RSon1234

Antwort

0

Jeder lernt anders! In diesem Fall bitten Sie den Code, mit der ++-Syntax inkrementieren (aka hinzufügen). Also, wenn i = 1, nach i++i = 2. Ähnlich i-- dekrementiert (aka subtrahiert) von i.

Nun sind die ersten beiden Teile der Schleife den Wert von i überprüfen und den Betrieb fortzusetzen. In Ihrem Fall fragen Sie das Programm set i equal to 10. If i is greater than 1, add 1 to it. Das ist, wo Sie die Endlosschleife erhalten, weil i immer größer als 1 ist. Was Sie wollen, ist. Sie können auch while und do/while Loops überprüfen

+0

Ich sehe nicht, wie diese Schleife prüft, ob i größer als 11 ist. Dies ist ein Fehler. – RSon1234

+0

Sie haben Recht. Es tut uns leid. Ich habe es so geändert, dass es von 10 -> 0 dekrementiert. – aberkow

+0

Bezieht sich nicht darauf. Sie sagen "Wenn ich größer als 11 bin" – RSon1234

0

Variable i beginnt bei 11, und wird dann um eine jede Schleife inkrementiert. Da die Bedingung ist, dass i> = 1, endet es nie. Sie müssen es ändern, so dass ich durch eine jede Schleife dekrementiert, wie folgt aus:

for (var i= 11; i>=1; i--){ 
1

Für eine Schleife 10-0 Iterator laufen i sollte in jeder Iteration Erniedrigen werden. Aber Sie erhöhen es stattdessen, damit for loop nie beendet wird.

for (var i = 10; i>=0; i--) { 
 
    console.log(i); 
 
}

0

Zuerst müssen Sie Unterschied zwischen Erhöhungen und Verringerungen lernen. Schritte bedeuten spezifischen Wert auf Ihre Variable , während auf anderen Verringerungen hinzuzufügen bedeutet, den Wert Ihrer Variable durch eine bestimmte Anzahl zu reduzieren.

Jetzt in Ihrem Fall i++ bedeutet, dass Sie 1 auf Ihre Variable i mit jeder Iteration der Schleife hinzufügen, während der Schleife beenden Sie den Zustand zu i>=1

gesetzt haben resultiert dies in einer Endlosschleife, die Ihren Browser abstürzt , wie i wäre nie gleich 1 oder i>=1 wird nie wahr wie bei jeder Iteration der Wert i erhöht um 1 Nummer, so würde es die Ausführung fortsetzen, bis Ihr Browser abstürzt.

Was Sie suchen ist:

for (var i = 10; i >= 0; i--) { 
    console.log(i); 
} 

jetzt i wird von 10 beginnen und zu 0 und Ihre Schleife endet allmählich reduzieren.

Hoffe es erklärt.