因此,我正在运行一些代码,并且可以运行它,但是我有两个if else语句。
说
if (( a == 'b'||'c') && (d!=0)) {
// do operation1;
} else if (( a == 'e'||'f') && (d!=0)) {
// do operation2;
}
当我的代码以这种方式构造时,操作1默认运行。我默认是什么意思?如果我尝试键入输入'e'或'f',它将执行操作1,就像我键入了'b'或'c' 但是后来我尝试了一些不同的方法。
if ((a == 'b') || (a == 'c') && (b != 0)) {
// do operation 1;
} else if ((a == 'e') || (a == 'f') && (b!= 0)) {
// do operation 2;
}
请参阅NOW操作1和2正在按预期工作。
为什么会这样?
答案 0 :(得分:1)
a == 'e'||'f'
并没有按照您认为的去做。 “ f”作为布尔值,因为它的值大于0,将始终被视为true。请尝试以下操作。
a == 'e' || a == 'f'
您在那两组代码之间的巨大差异不是(方括号),而是'=='的用法。