Del*_*Web 1 arrays null lua if-statement
所以我刚刚开始学习 lua ,我正在 Corona SDK 中为我的游戏编写一个小脚本,但脚本的部分是纯 lua 。
这是一些代码:
function checkNumAndExp(number)
local correct;
if randomText == "bigger than " then
if number > randomNumber then
correct = true;
end
return correct;
elseif randomText == "smaller than " then
if number < randomNumber then
correct = true;
end
return correct;
elseif randomText == "multiples of " then
if number%randomNumber == 0 then
correct = true;
end
return correct;
elseif randomText == "divisible by " then
if number%randomNumber == 0 then
correct = true;
return correct;
end
else
correct = false;
return correct ;
end
end
Run Code Online (Sandbox Code Playgroud)
我想做的是检查给定的数字是否大于或小于......开始时生成的随机数。
注意:randomText 是一个随机表项字符串,等于以下值之一:
- 大于
- 小于
- 的倍数
- 可除以
我当前的问题是,对于所有正确的情况,总是返回一个 nil 值。所有其他变量都不为零。
有什么想法会导致这种情况吗?
“Biggerthan”、“Biggerthan”、“biggerthan”和“biggerthan”都是不同的字符串。
有关您的代码的更多信息:
Run Code Online (Sandbox Code Playgroud)if number > randomNumber then correct = true; end return correct;
布尔表达式的number > randomNumber
计算结果为true
or false
。如果计算结果为true
,则将变量设置为true
。您可以通过直接使用表达式的结果来简化这一过程:
correct = number > randomNumber
return correct
Run Code Online (Sandbox Code Playgroud)
鉴于您立即返回结果,您甚至不需要该变量。你可以这样写:
return number > randomNumber
Run Code Online (Sandbox Code Playgroud)
所以你的代码可以这样写:
function checkNumAndExp(number)
if randomText == "bigger than " then
return number > randomNumber
elseif randomText == "smaller than " then
return number < randomNumber
elseif randomText == "multiples of " then
return number%randomNumber == 0
elseif randomText == "divisible by " then
return number%randomNumber == 0
end
return false
end
Run Code Online (Sandbox Code Playgroud)