检查是否所有陈述都是错误的?

有没有一种方法只在多个语句都为 false 时执行一行代码?

我有一个库存:

 inventory = {
     {"Images/Category 1/pistol1.png"false},
     {"Images/Category 1/machinePistol1.png"false},
     {"Images/Category 2/shotgun1.png"false},
     {"Images/Category 2/assaultRifle1.png"false},
     {"Images/Category 3/sniperRifle1.png"false},
     {"Images/Category 3/rocketLauncher1.png"false}
 }

我想编写一个函数,如果所有这些语句都为 false,则执行一行代码,但如果其中一个为 true,则明显执行其他操作。

点赞
用户752976
用户752976

你可以使用一个变量,并假设它是 true

local IsEverythingTrue = true

-- **for** 语句是一个循环。它允许我们在库存中的任何数量元素上以相同的方式操作。
-- _,v 表示我们将从库存表中读取的变量,
-- 我们无法直接操作,但是 **ipairs** 函数将准备好操作它,
-- _ 将持有每个元素的数字索引(1、2、3 等);
-- 我们不会使用它,所以我放了一个占位符名字
-- v 将持有每个值,所以是你的两个元素的表

for _,v in ipairs(inventory) do

    -- 如果任何 v[2] 的值为 false,则跳出循环
    -- v[2] 等于 inventory[_][2]
    -- 如果它不是 v[2] 可以写成
    -- *如果 v[2] 的值不是真的*

    if not v[2] then
        -- 在这种情况下,发现第一个不为 true 的元素后
        -- 我们就知道不是所有的都是 true,或者至少有一个是 false 的
        IsEverythingTrue = false
        break -- 我们不必检查其他任何内容
    end
end

然后在表达式中使用那个变量

if IsEverythingTrue then
    -- 做某事
else
    -- 做其他事情
end

如果你希望它在出现_多个_ false 时执行,只需计数。在开头添加 local falseCount = 0,并将 break 更改为 falseCount = falseCount + 1

2013-01-17 10:38:39