2013-05-29 31 views
-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號線得到了以下錯誤:

預計近期再

做的是附近然後做。有人能告訴我我錯了哪裏?謝謝。

+0

您可以通過閱讀手冊真正受益:http://www.lua.org/manual/5.2/manual.html#3.3.4 – dualed

回答

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 
5

你在代碼中有幾個語法錯誤。首先是while被寫爲while foo > bar do,而if使用if foo > bar then的語法。

另一個錯誤是在您的if聲明中,您有if y * y = x then。邏輯等於運算符是==,所以它應該是if y * y == x