1

小さな 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 `%'

それは大したことではないと思いますし、おそらく何が間違っているのかは明らかです。しかし、どういうわけか私は現時点ではそれを見ることができません。

4

2 に答える 2

6

おそらくバージョンの問題があります。luaのバージョンを確認してください。モジュロのインフィックス演算子としての「%」の使用は、Lua 5.1でのみ使用できますが、5.0ではまだサポートされていません。math.mod代わりに使用してみてください:

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

編集math.mod:5.1でもまだ存在していますが、名前がに変更されていることにも注意してくださいmath.fmod。今のところ、古い名前は引き続き機能しますが、将来のバージョンではサポートが削除される可能性があります。

于 2009-01-20T20:48:13.623 に答える
-1

「n% i == 0」を括弧で囲んでみましたか? ばかげた質問ですが、見落とされることもあります。

于 2009-01-20T20:36:42.507 に答える