Условие «иначе» не допускается? Почему? - PullRequest
0 голосов
/ 31 марта 2020

Почему для оператора else не разрешено иметь then или другие условия? Это потому, что это конечное условие в пределах else-if условий, которые оно представляет?

Я изо всех сил пытаюсь понять эту концепцию, так как я новичок, который только что узнал о переменных.

Я спрашиваю об этом, потому что я получил ошибку с моим else утверждением в коде:

message = 0
condition = 30

if condition <=10
message = “try harder”

elseif
condition <=20 then
message = "Almost learning"

else
condition = <=30 **—This is the line where I get the error message**
message = "Now you’re getting it"

end
print(message)

Буду признателен, если кто-то сломается в терминах мирян, почему иначе не разрешено иметь < или > или then или другие условия.

1 Ответ

2 голосов
/ 31 марта 2020
else condition = <= 30

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

Весь пункт из else само по себе должно выполняться, если none из других условий были выполнены. Таким образом, условие в else абсолютно бесполезно.

Программирование в Lua book if выражение показывает нормальное использование:

if op == "+" then
  r = a + b
elseif op == "-" then
  r = a - b
elseif op == "*" then
  r = a*b
elseif op == "/" then
  r = a/b
else
  error("invalid operation")
end

Однако Ваш фактический код (при правильном форматировании) в конечном итоге выглядит следующим образом:

else
condition = <=30

, что правильно в терминах else, но, к сожалению, делает следующую строку оператором. И это утверждение очень неправильный синтаксис.

Теперь может быть тем, что вы намеревались присвоить условию 30, но на основе других ваших строк (что-то вроде этого как условия) Я подозреваю, что нет. Так что, вероятно, лучше всего полностью удалить эту строку.

...