Lua - синтаксическая ошибка в операторе if - PullRequest
1 голос
/ 20 января 2009

Просто попытался выполнить небольшой скрипт Lua, но, к сожалению, я делаю что-то не так. У меня нет больше идей, в чем может быть ошибка.

function checkPrime( n )
    for i = 2, n-1, 1 do
        if n % i == 0 then
            return false
        end
    end
    return true
end

Переводчик говорит:

lua: /home/sebastian/luatest/test.lua:3: `then' expected near `%'

Я думаю, что это не так уж и важно, и, возможно, совершенно ясно, что не так. Но почему-то я не вижу этого сейчас.

Ответы [ 2 ]

6 голосов
/ 20 января 2009

Возможно, существует проблема с версией, проверьте вашу версию lua. Использование «%» в качестве инфиксного оператора для модуля может использоваться только в Lua 5.1, в 5.0 это пока не поддерживается. Попробуйте использовать math.mod вместо:

if math.mod(n,i) == 0 then

Редактировать : Также обратите внимание, что в 5.1 math.mod все еще существует, но оно было переименовано в math.fmod. На данный момент старое имя все еще работает, но поддержка, вероятно, будет удалена в будущих версиях.

0 голосов
/ 20 января 2009

Вы пробовали заключать в скобки "n% i == 0"? Глупый вопрос, но иногда забывают!

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