在Corona SDK中,如何在if,elseif,else语句中使用'and'关键字?

时间:2014-08-24 00:11:18

标签: android ios lua cross-platform corona

这就是我现在的代码:

if randomNumber <=10 then
    physics.setGravity( 20, 0 )

elseif randomNumber > 10 and <= 20 then

    physics.setGravity( -20, 0 )

elseif randomNumber > 20  and <= 30 then

    physics.setGravity( 0, 20 )
else 
    physics.setGravity( 0, -20 )
end 

由于某种原因,当我尝试运行程序时收到错误消息。如果有人可以提供帮助,那就太好了。

2 个答案:

答案 0 :(得分:0)

elseif randomNumber > 10 and randomNumber <= 20 then

&#34;和&#34;两侧的东西。或&#34;或&#34;必须评估真值或假值。因此:

randomNumber > 10

是有效的比较。但是:

<= 20

不是。什么小于或等于20?如果不在左侧指定变量/值,则不知道您要查看的内容是否小于或等于20.

有时你会看到:

if someValue or someOtherValue then

在这种情况下,someValue和someOtherValue正在评估true或false,而不必将其与另一个值进行比较。当您只指定一个变量时,它真正要求的是:

someValue不是零或不是假的。任何其他答案都是真的。

答案 1 :(得分:0)

if (randomNumber <=10) then
    physics.setGravity( 20, 0 )

elseif (randomNumber > 10) and (randomNumber <= 20) then

    physics.setGravity( -20, 0 )

elseif (randomNumber > 20) and (randomNumber <= 30 then

    physics.setGravity( 0, 20 )
else 
    physics.setGravity( 0, -20 )
end 

试试这个。