【问题标题】:Why is this booleans always a nil value in all conditions?为什么这个布尔值在所有条件下总是为零值?
【发布时间】:2016-01-19 14:37:55
【问题描述】:

所以我刚开始学习 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

我要做的是检查给定的数字是否大于或小于....开始时生成的随机数。

注意:randomText 是一个随机表项字符串,它等于其中一个值:

  1. 大于
  2. 小于
  3. 的倍数
  4. 能被整除

我目前的问题是,对于所有正确的情况,总是返回一个 nil 值。所有其他 vars 不是 nil 。

有什么想法会导致这种情况吗?

【问题讨论】:

  • 字符串比较对字母大小写和尾随空格敏感。

标签: arrays if-statement lua null


【解决方案1】:

“大于”、“大于”、“大于”和“大于”都是不同的字符串。


更多关于你的代码:

if number > randomNumber then
    correct = true;
end
return correct;

布尔表达式number &gt; randomNumber 的计算结果为truefalse。如果它的计算结果为true,那么您将一个变量设置为true。您可以通过直接使用表达式的结果来简化它:

correct = number > randomNumber
return correct

鉴于您立即返回结果,您甚至不需要该变量。你可以写:

return number > randomNumber

所以你的代码可能已经写好了:

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

【讨论】:

  • 非常感谢,原因不在于字符串,而在于 if/else 语句的结构。现在一切正常,而且干净多了:)。
猜你喜欢
  • 1970-01-01
  • 2013-04-15
  • 2011-01-29
  • 2018-01-27
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 2023-03-04
  • 2016-04-02
相关资源
最近更新 更多