假设我想在if语句中测试不仅仅是一个,而是几个等价变量:
if(x1==x2==y1==y2){
printf("Input values shouldn't be equal!");
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.还有什么方法可以做到这一点?
Joh*_*ode 26
if (x1 == x2 && x2 == y1 && y1 == y2) { ... }
Run Code Online (Sandbox Code Playgroud)
表达式的结果a == b将是0或1的整数值.==运算符是左关联的,因此表达式a == b == c将被计算为(a == b) == c; 也就是说,a == b(0或1)的结果将与c的值进行比较.所以在下面的代码中
if (a == b == c) { ... }
Run Code Online (Sandbox Code Playgroud)
如果a == b且c == 1或a!= b且c == 0,则表达式仅计算为true.
San*_*nen 10
if (x1 == x2 && x1 == y1 && x1 == y2)
{
printf("Input values shouldn't be equal!");
}
Run Code Online (Sandbox Code Playgroud)
如果它们是整数,则可以使用按位运算:
if ((x1 & x2 & x3 & x4) == (x1 | x2 | x3 | x4))
// all are equal
Run Code Online (Sandbox Code Playgroud)
它会评估真正的IFF,它们都是一样的
顺便说一下,不起作用,因为 (x1 == x2) 如果为 true,则计算结果为数字 1;如果为 false,则计算结果为 0。(x1 == x2 == x3) 最终计算为 ((x1 == x2) == x3)。
我认为您需要编写自己的函数来执行此操作。
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |