我是javascript的新手。我有一个类似的程序:
var a = 2
if(a !=2 || a != 3){
console.log("not")
}
此处,我已将变量a
值设置为2
。
在我的情况下,我设置了if a is not 2 or a is not 3
它应该打印not
但此处a's
值2
正在打印not
。
无论值是什么,它总是给not
我可以很容易地检查这是python:
if not a == 2 or not a== 3
这里有什么不对吗?
答案 0 :(得分:2)
var a = 2
a
现在是2
。
a !=2
这是false
,因此我们会查看或
a != 3
这是事实。因此,测试的两个方面之一是真的。因此,或测试是真的。
如果您想测试某个值是否<2> >> 而不是3,那么您需要使用&&
运算符。
答案 1 :(得分:1)
也许你想要这个:
if(a !=2 && a != 3){
console.log("not")
}
换句话说,如果a不是2而a不是3。 这就是布尔逻辑的工作原理。在您的示例中,因为a不等于3,条件为真。
答案 2 :(得分:0)
简单解释
false || true = true
a != 2 //returns false
a != 3 //returns true
在python中:
not a == 2 // returns false
not a == 3 //returns true
答案 3 :(得分:0)
请阅读how logical operators work。
如果 a不是2 或 a不是3 ,则您的条件评估为true,这意味着仅当 a为2时才会为false 3同时这是不可能的 - 这种情况永远都是真的。
您可能也有兴趣阅读mathematical logic and negations上的内容。
如果您想确保 a不是2或3 ,那么您应该将其更改为
if((a != 2) && (a != 3)){
如 a不是2而a不是3 - 请记住,您正在使用2个语句。
答案 4 :(得分:0)
&#34; OR&#34;在条件中意味着if块中的语句将被执行,如果
中的任何一个方程式(a != 2)
和
(a != 3)
返回true。
在您的代码段中
(a != 3)
是真的,因此声明
console.log("not");
被执行。
答案 5 :(得分:-1)
这是非常期待的行为,它在python和javascript中的工作方式相同
a = 2
if not a == 2 or not a== 3:
print ("not")
相当于
var a = 2
if(a !=2 || a != 3){
console.log("not")
}
答案 6 :(得分:-2)
在或表达式条件中检查主题之一是否成真或直到没有条件。