我最近被朋友要求帮助在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行得到了以下错误:
预计接近
就在那附近。有人能告诉我哪里出错了吗?感谢。
答案 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> end
和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