假如我有三个变量,如何做到在这三个变量的其中一个为真时,其他两个为假?

假如我有三个变量,如何做到在这三个变量的其中一个为真时,其他两个为假?

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在C语言中,可以使用逻辑运算符实现这个功能。假设变量分别为a、b、c,可以使用如下的逻辑表达式:

if (a) {
    b = 0;
    c = 0;
} else if (b) {
    a = 0;
    c = 0;
} else if (c) {
    a = 0;
    b = 0;
}

这个表达式的意思是,如果a为真,则把b和c设为假;如果a为假且b为真,则把a和c设为假;如果a和b都为假且c为真,则把a和b设为假。这样,就可以保证只有一个变量为真,其他两个变量都为假。

在Lua中,同样可以使用逻辑运算符实现这个功能。假设变量分别为a、b、c,可以使用如下的逻辑表达式:

if a then
    b = false
    c = false
elseif b then
    a = false
    c = false
elseif c then
    a = false
    b = false
end

这个表达式的意思和C语言中的相同。在Lua中,false和nil都被视为假,其它值都被视为真。因此,如果变量a、b、c中有一个是false或nil,那么它会被视为假。

参考GPT和自己的思路:

这个问题可以使用逻辑运算符来解决。你可以使用逻辑或运算符(||)将三个变量连接在一起,并使用条件运算符(?:)来设置其他两个变量为假。具体代码如下:

variable1 || variable2 || variable3 ? variable1=true && variable2=false && variable3=false : variable1=false && variable2=false && variable3=true;

这样,如果其中一个变量为真,则其他两个变量都将被设置为假。如果没有一个变量为真,则三个变量都将被设置为假。希望这可以回答你的问题。

建议你换一个思路
做成枚举:
enum type
{
a,b,c
} type1;
比如说type1 = a;
那么type == a 为真,type==b type==c为假