我有两个变量 AB,我想写一个代码,如果两个变量之一等于

151 or 156 or 720

另一个不等于这些数字之一,那么第三个变量 C = 0 等于 1。

所以例如
1) if A = 151 and B = 700 then C = 1
2) if A = 151 and B = 720 then C = 0
3) if A = 140 and B = 700 then C = 0

这是代码
int A = 0
cin >> A;
int B = 0
cin >> B;
int C=0;
int DECKlist[3] = {151,156,720}
for(int d=0; d<3;d++){
      if(A== DECKlist[d]){
           for(int w=0; w<3;w++){
                if(B==DECKlist[w]) C=0;
                 else C=1;
            }
       }
       if(B== DECKlist[d]){
           for(int w=0; w<3;w++){
                if(A==DECKlist[w]) C=0;
                 else C=1;
            }
       }
}

这个可以吗?还有其他更好的方法吗?

最佳答案

这是一个异或,异或。 C++ 中没有逻辑 XOR,但您可以对您的情况使用按位 XOR,并利用以下事实:逻辑运算符的结果是一个 bool,它将映射到 0 或 1:

#include <iostream>

int main()
{
    int A, B, C;

    std::cin >> A;
    std::cin >> B;

    A = (A == 151 || A == 156 || A == 720);
    B = (B == 151 || B == 156 || B == 720);

    C = A ^ B;

    std::cout << C << std::endl;
}

我在这里使用了一个简单的表达式来检查一个数字是否是三个提供的数字之一。对于要检查的更大的数字集,您可以使用 std::set

关于c++ - 如何编写多个if条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26759602/

10-15 07:49