2014-12-05 1 views
-3

Я думал, что следующее будет перечислять все числа от 0 до 21, которые делятся на 7, т. Е. 7, 14 и 21. Вместо этого он возвращает 22. Почему?simple modulo not возвращающий список значений, которые я ожидал

for (var i = 0; i <= 21; i++) { 
    if (i % 7 === 0); 
} 
console.log(i); 

BTW, у меня нет фона программирования, и я изо всех сил пытаюсь получить свой первый язык под моим поясом. Меня интересуют маленькие крошечные детали. Во всяком случае, спасибо, что помогли мне понять, как повлияло влияние размещения на консоли console.log.

+2

Прочитайте код построчно, пока не увидите его. – Biffen

ответ

1

потому что вы ничего не печатаете в своем цикле, а только конечное значение i.

1

Ваш текущий код, переформатирован:

for (var i = 0; i <= 21; i++) 
{ 
    if (i % 7 === 0) 
     ;    // do absolutely nothing 
} 

// now that i == 22... 
console.log(i); 

, что вы хотите сказать:

for (var i = 0; i <= 21; i++) 
{ 
    if (i % 7 === 0) 
    console.log(i); 
}