Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Цикл while и for проблема с выполнением условия. (https://javascript.ru/forum/misc/74175-cikl-while-i-problema-s-vypolneniem-usloviya.html)

Hailrake 19.06.2018 21:44

Цикл while и for проблема с выполнением условия.
 
Заранее извиняюсь, если не в той ветке пишу, новичок на форуме.

Ситуэйшн. Изучаю циклы JS, пишу цикл for:

for (x = 3; x < 10000; x *= 3) {
console.log (x)
};

// Последним значением консоль возвращает undefined, а перед ним - 6561, что логично, ведь в условии x < 10000.

Далее пишу цикл while:

var x = 3;
while (x < 10000) {
console.log (x)
x *= 3
};

// Последним значением консоль возвращает 19683, без undefined... Я не понимаю почему, ведь в условии прописано x < 10000.

Помогите разобраться, почему так происходит. Заранее спасибо! :)

ЗЫ: Пока сидел разбирался понял, что цикл while запускается ещё раз потому что предпоследнее значение 6561, следовательно, условие даёт true и цикл повторяется ещё раз. НО! Почему цикл не повторяется ещё раз в случае цикла fore? :write: Я же правильно понимаю?

рони 19.06.2018 22:04

Цитата:

Сообщение от Hailrake
Последним значением консоль возвращает 19683

в обоих случаях это 6561,
при x = 19683 вывода консоли не происходит в обоих случаях

Hailrake 19.06.2018 22:22

Получается, что можно не обращать внимания на число 19683? А как можно сделать, чтобы консоль его не возвращала? И ещё я обратил внимание на надписи VM78:3 в правом углу консоли google chrome, они находятся напротив чисел, которые возвращает консоль, кроме числа 19683, что они значат? Я пытался погуглить, но не нашёл ответа.

рони 19.06.2018 22:29

Цитата:

Сообщение от Hailrake
А как можно сделать, чтобы консоль его не возвращала?

подскажите как вы это делаите?

Hailrake 19.06.2018 22:35

Я просто пишу цикл в google chrome консоли, а потом просто его запускаю, проверить работает он или нет. Цикл я выше писал.

рони 19.06.2018 22:46

Цитата:

Сообщение от Hailrake
Я просто пишу цикл в google chrome консоли

ок понятно, могу ошибаться, но что-то типа , виртуальная машина (сервер) строка 3 (console.log (x))

var x = 3;
 while (x < 10000) {
 console.log (x)
 x *= 3
 };


и последняя строка это текущее состояние x


Часовой пояс GMT +3, время: 09:49.