Bowser Films Ответов: 1

Ошибка Lua while loops. Почему мой цикл while работает неправильно?


Как новый программист lua, я наслаждаюсь изучением новых вещей в lua. Я учусь у: https://www.tutorialspoint.com/lua/lua_loops.htm однако, когда я практикую свой код, он не работает. В своем коде я определил объект под названием "FolderImBalanced" и сделал этот объект истинным. Позже в коде я изменил объект на FALSE. Но код не работает. Как же так?

GetServerStats,UserImbalance = "Lua Server Status","Inbalance Pulsle"
print(UserImbalance)
FolderImBalanced,NewNilValue = true,false
while (true)
do
FolderImBalanced = false
end
print(FolderImBalanced)


Что я уже пробовал:

Я перепробовал все. Сначала я зашел на сайт под названием "переполнение стека" и задал тот же вопрос. Лучший ответ, который я получил, был такой: "
Цитата:
Код, который вы написали, работает, даже если он может не делать того, что вы ожидаете. Прямо сейчас ваш цикл while выполняется бесконечно.


Он не потрудился лучше объяснить, что он имел в виду, так что я все равно ушел в конце дня в замешательстве. Что он имеет в виду под моей неумолимостью? И что хуже всего, он до сих пор не объяснил мне, что мой код не будет работать.

Затем я пошел в google, и google сказал::
Цитата:
Чтобы забыть инициализировать переменную, которая используется в условии цикла. Помните, что первый раз условие проверяется перед началом выполнения тела цикла.

Что опять-таки не помогает. Я потратил часы, пытаясь найти решение, но никто его не нашел. Поэтому я пришел на этот сайт, надеясь на ответ.

Однако модераторы были снобами и забанили меня без всякой причины, поэтому я пришел сюда.

1 Ответов

Рейтинг:
0

CPallini

Вы написали бесконечный цикл (цикл, работающий вечно), потому что условие while всегда true Вы можете легко проверить это, выполнив следующий код:

GetServerStats, UserImbalance = "Lua Server Status", "Inbalance Pulsle"
print(UserImbalance)
FolderImBalanced, NewNilValue = true, false
while true do
  FolderImBalanced = false
  print("inside the loop")
end
print(FolderImBalanced)


Для того чтобы выйти из цикла, вы должны либо
  • Измените условие цикла, например
while FolderImBalanced do
  FolderImBalanced = false
end

Или
  • Используйте break заявление, например
while true do
  FolderImBalanced = false
  break -- this exits the loop
end