-1

最近有一个朋友请我帮忙用 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 行得到了以下错误:

预计在那时附近

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

4

2 回答 2

5

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

另一个错误是在您的if陈述中,您有if y * y = x then. 逻辑等于运算符是==,所以它应该是if y * y == x

于 2013-05-29T00:45:31.413 回答
4

在 Lua 中,它是while <expr> do <code> endand if <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
于 2013-05-29T00:43:10.387 回答