/// infinite loop?? $x=1; while($x=9){ echo $x; $x++; }
я не понимаю причину, почему приведенный выше код вызывает бесконечный цикл, на мой взгляд выше код должен выводить «9» один раз. но он выводит бесконечные 999999999 ……
сначала (когда x равно 1), в то время как утверждение ложно, поэтому ничего не происходит, тогда x становится 2, но снова, когда утверждение ложно;
Поэтому, когда x становится 9, в то время как утверждение истинно, поэтому оно должно эхо 9, а затем добавить 1 из-за x ++; и он становится равным 10, тогда как утверждение становится ложным, но, как я вижу, это не так, потому что
он продолжает эхо 9999999 …….
PLS просветить меня относительно вышеприведенного кода. с наилучшими пожеланиями.
примечание: я проверил похожие вопросы, но не могу найти ответ для моей ситуации thx
$x=9
является присваиванием и всегда истинно. Возможно, вы имели в виду $x==9
или какой-то другой реляционный оператор.
Ты имеешь в виду
$x == 9
Но в вашем примере это ничего не сделает, потому что $ x! = 9. Вероятно, вы имеете в виду
while($x < 9)
Вы назначаете значение 9 переменной x вместо выполнения реляционного сравнения. Обычная ошибка. = – оператор присваивания, тогда как == – оператор сравнения равенства.
http://en.wikipedia.org/wiki/Assignment_(computer_science)#Assignment_versus_equality