我无法弄清楚为什么这不起作用......
if (index != 10 || index != 0) {
如果仍然允许index = 0
功能,为什么?
答案 0 :(得分:5)
当index为零时,它不是十。
双管道是逻辑OR运算符。当左侧或右侧为真时,表达式返回true。
如果您打算在index不是10和0时返回false,请使用逻辑AND,&&
:
if (index != 10 && index != 0) {
答案 1 :(得分:2)
因为你正在使用OR,例如||。所以首先它说是指数!= 10这是真的,因为它等于0,因此它进入条件。
您需要将其更改为(index!= 10&& index!= 0)。
答案 2 :(得分:1)
是的,因为使用了||意味着如果两个条件中的任何一个为真,它将运行。因此,由于0不是10,它将运行,因为当使用||时只需要满足其中一个条件。
如果您不希望它被允许,请使用&&
代替||
,这样只有在满足两个条件时才会运行
答案 3 :(得分:1)
如果index
评估为某个数字,则其中一个条件将始终为真。
尝试
if (!(index == 0 || index == 10)) {
...
}
答案 4 :(得分:0)
你应该替换||用&&。不要与||混淆这是OR运算符,如果任何条件为true
而且&&&当且仅当所有条件都是true
时,AND运算符才会计算为true
。