Почему функция внутри цикла while не работает?

#javascript #function #while-loop

Вопрос:

Я хочу использовать while цикл для зацикливания и активации функции 5 раз. Но у меня есть проблемы с тем, чтобы заставить функцию myFunction работать внутри while цикла. Цикл работает сам по себе, если я удалю функцию. Что не так?

 var c = 0;
var p = 0;

while (c < 5 amp;amp; p < 5) {
  function myFunction() { // How to make this function work?
    c  ;
    document.write(c);
  }

  if (c == 5) {
    document.write(c);
    document.write('computer win');
  }
  else if (p == 5) {
    document.write('player win');
  }
} 

Комментарии:

1. Вы объявляете функцию в цикле, но не вызываете ее.

Ответ №1:

     var c = 0;
    var p = 0;

    function myFunction() {

        c  ;
        document.write(c);
    }


while (c < 5 amp;amp; p < 5) {

    myFunction();

    if (c == 5) {
        document.write(c);
        document.write('computer win');
    } else if (p == 5) {
        document.write('player win');
    }

}
 

В JavaScript или любом другом языке вы должны определить функцию, чтобы вызвать ее. И определение функции внутри цикла-это очень плохая практика, которая, вероятно, приводит к ошибке.

Ответ №2:

Вы объявляете функцию в цикле, но не вызываете ее.

 function myFunction() { // how to make this function work?
  c  ;
  document.write (c); 
} 

var c = 0;
var p = 0;

while ( c < 5 amp;amp; p < 5) {
  myFunction();
  if ( c == 5 ) {
    document.write (c); 
    document.write ('computer win');
  } else if ( p == 5 ) {
    document.write ('player win');
  }
} 

Комментарии:

1. c не определен

2. @AsiriH. Нажмите «Запустить фрагмент кода» и посмотрите, как это работает. Объявления переменных отображаются в JavaScript: developer.mozilla.org/en-US/docs/Glossary/Hoisting

3. @AsiriH. это происходит, когда вызывается функция.

Ответ №3:

Вы не вызывали функцию, а просто объявили ее.