2016-06-14 27 views
-1

Ich habe gerade angefangen, JS zu lernen, und ich habe ein bisschen Schwierigkeiten, die Grundlagen hinter der 'for' Schleife zu verstehen.'for' loop und modulo

Beispiel:

for (var number = 3; number % 7 == 0; number++) 

Warum es keinen Sinn macht? Warum muss ich es so aufschreiben:

for (var number = 3; ; number++) { 
    if (number % 7 == 0) 
    break; 
} 

Vielen Dank für Ihre Hilfe!

+3

Der mittlere Teil der Schleife teilt Ihnen die Bedingung, dass sie weiterlaufen, nicht die Bedingung macht, dass sie aufhören macht. Um das Stück Code unten zu erreichen, sollten Sie 'number% 7! = 0' anstelle von' == ' – dabadaba

+0

verwenden. Vielen Dank! Das war der Punkt! –

+1

Sie sollten @ melpomenes Antwort akzeptieren. – dabadaba

Antwort

3

Sie haben den Zustand invertiert. Der mittlere Teil einer for-Schleife sagt Ihnen, was für die Schleife wahr sein muss, um fortzufahren. Ihre zweite Version verwendet die gleiche Bedingung, um zu entscheiden, wann sie aufhören soll.


for (A; B; C) { ... } 

können (meist) neu geschrieben werden als

A; 
while (B) { 
    ... 
    C; 
} 

(Der Unterschied ist, dass continue in einer for Schleife wird immer noch die C Teil auszuführen.)

Zunächst Ihre number ist 3. Dann machen wir das Äquivalent von while (number % 7 == 0) { ... }, aber diese Bedingung schlägt fehl (3 % 7 ist 3, nicht 0), also läuft die Schleife nie.


Sie wollten wahrscheinlich

for (var number = 3; number % 7 != 0; number++) 
+1

Ja! Das ist es! Jetzt verstehe ich das :) Danke !! –