预计在那附近

时间:2013-05-29 00:36:40

标签: if-statement lua

我最近被朋友要求帮助在lua写一个程序,找到了完美的正方形,所以我拟定了这个:

print ("Select your maximum number")
x = io.read()
y=1
z={}
a=1

while y * y ~= x and y < x / 2
    then do
        y = y + 1
end
if y * y = x
    then do
        z[a] = x
        a = a + 1
end
x = x - 1

为了测试程序,我添加了

print z[1]
到最后。当我去测试这个程序时,我在第8行得到了以下错误:

预计接近

就在那附近。有人能告诉我哪里出错了吗?感谢。

2 个答案:

答案 0 :(得分:5)

您在该代码中有几个语法错误。第一个是while写为while foo > bar do,而if使用if foo > bar then的语法。

另一个错误是,在if声明中,您有if y * y = x then。逻辑等于运算符的是==,因此它应该是if y * y == x

答案 1 :(得分:4)

在Lua中,它是while <expr> do <code> endif <expr> then <code> end。此外,平等测试是==。所以你的代码应该是:

while y * y ~= x and y < x / 2
    do
        y = y + 1
end
if y * y == x
    then
        z[a] = x
        a = a + 1
end
x = x - 1