2013-03-14 77 views
2

我在LuaLua的「結束」預計將「如果」

function onMouseDown(event) 
    print(event.x, event.y) 
    if event.x>160 then 
     print("what") 
     return 1 
     print("whatwhat") 
    else 
     return 0 
     print("WhatWhatWhat") 
    end 


    fruit:setX(event.x) 
    fruit:setY(event.y) 
end 

這裏有這樣的代碼,但它是呻吟main.lua:59:「結束」預期(關閉「如果」在行56)在'print'附近,所以它預計在我的下面打印結尾(「whatwhat」)結束。 但是我放棄了它,如果我這樣做,它仍然呻吟着我。

我非常新的Lua和我有點困惑,我通常程序在C#

回答

8

見Lua的手動§3.3.4

回報語句只能寫成塊的最後陳述。如果在塊的中間確實需要返回,則可以使用明確的內部塊,如在成語do return end中,因爲現在返回是其(內部)塊中的最後一個語句。

您的代碼調用print發生在return語句之後,因此無效。

0

我懷疑你的問題是恢復後打印。這是死代碼; Lua希望在塊的結尾處有回報。