sto*_*low 3 c if-statement logical-operators
我有一个关于在if语句中使用逻辑运算符的快速问题.
目前我有一个if语句检查x是否等于5或4或78:
if ((x == 5) || (x == 4) || (x == 78)) {
blah
}
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以将所有内容浓缩为:
if (x == 5 || 4 || 78) {
blah
}
Run Code Online (Sandbox Code Playgroud)
对不起这个基本问题,我刚开始学习C.
小智 9
没有捷径,但您需要修复等于运算符.
if ((x == 5) || (x == 4) || (x == 78)) {
Run Code Online (Sandbox Code Playgroud)
首先,你在ifs中使用的是赋值而不是相等的测试.第一种方法(与平等合适的替代)是做测试的最佳方式,但如果你有很多可能的选择,可能会有更好的办法.第二种方式可能会编译,但它不会做你想要的,它总会返回true,因为4和78都评估为true,你正在做的是评估5(分配5到x的结果)或4或78是真的.switch语句可能是一种可能的替代方法.
switch (x) {
case 4:
case 5:
case 78:
blah...
break;
default:
}
Run Code Online (Sandbox Code Playgroud)