Бесконечный цикл цикла 3 - PullRequest
2 голосов
/ 03 июля 2019

Я просто хочу напечатать номера, список чисел с пропуском кратным 3. Я получил его на работу, но первоначальный способ, которым я пытался, не сработал, и я не понимаю, почему, просто нужен кто-то, чтобы объяснить, почему это не работает и идет в бесконечный цикл.

Это проблема, почему она входит в бесконечный цикл? Я явно пропускаю ключевую концепцию кода, если кто-то может помочь, спасибо.

var i = 0;
     while (i <= 10) {
         if (i % 3 == 0) {
            continue;
        }


       document.write( i + "</br>");
         i++;
        }

Я знаю, что вы можете сделать это таким образом.

while (i <= 10) 
{

     if (i % 3 != 0) {

        document.write("Number is " + i + "<br />");  

    }

   i++

 }

Ответы [ 2 ]

1 голос
/ 03 июля 2019

Если мы игнорируем код, создающий вывод, и смотрим только на проверку и изменение кода i, может стать немного яснее, почему он не работает.Это также помогает отформатировать наш код для большей ясности.

var i = 0;

while (i <= 10) {
  if (i % 3 == 0) {
    continue;
  }

  i++;
}
  • Начните с i = 0.
  • i <= 10 равно true.Введите цикл.
  • i % 3 == 0 - это true.Введите блок if.
  • continue;.Вернитесь прямо к вершине цикла while снова.Не пропустите i++;.Не собирайте 1.
  • Пена.Полоскание.Повторите (бесконечно).
1 голос
/ 03 июля 2019

continue переходит к следующей итерации и не завершает оставшуюся часть кода в while. Так что i не увеличивается, а остается равным 0, потому что вы написали continue перед увеличением i. поэтому, поэтому он находится в бесконечном цикле, он всегда меньше 10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...