if else 语句反转
if else statement reverse
我想要的结果是第二个 if else 语句如果代码不在列表中然后警告,我不明白为什么第一个 if else 语句失败,我认为只是反转第二个 if else 语句?我是不是误会了什么??
https://jsfiddle.net/e6qohvhc/
var code = '500';
if (code != '400' || code != '401' || code != '500') {
console.log('true'); // I don't want it alert here
}
if (code == '400' || code == '401' || code == '500') {
// I have to always leave this empty line ...
} else {
console.log('second true');
}
您可能需要查看 Morgan's laws。
基本上,如果你想否定(a || b || c)
你需要使用(!a && !b && !c)
希望对您有所帮助,
这与 De Morgan's laws 有关:
如果要反转语句,则必须反转每个运算符。
!a
变成a
,b
变成!b
,||
变成&&
,&&
变成||
.
所以你的第二个 if
的反转会是这样的
(code != '400' && code != '401' && code != '500')
if(code != '400' || code != '401' || code != '500'){}
永远为真,因为一个变量不能等于多个值
问题是||
首先,如果 500
的语句始终为真,这就是您遇到问题的原因/
以这种方式进行,它应该会按照您想要的方式工作(在您的 fiddle 中查看);
var code = 500;
alert(code);
console.log(code);
if (((code !== 400) || (code !== 401)) && (code !== 500)) {
console.log('true');
alert("123");
}
else if ((code == 400) || (code == 401) || (code == 500)) {
alert("456");
} else {
console.log("second true");
alert("else");
}
我想要的结果是第二个 if else 语句如果代码不在列表中然后警告,我不明白为什么第一个 if else 语句失败,我认为只是反转第二个 if else 语句?我是不是误会了什么??
https://jsfiddle.net/e6qohvhc/
var code = '500';
if (code != '400' || code != '401' || code != '500') {
console.log('true'); // I don't want it alert here
}
if (code == '400' || code == '401' || code == '500') {
// I have to always leave this empty line ...
} else {
console.log('second true');
}
您可能需要查看 Morgan's laws。
基本上,如果你想否定(a || b || c)
你需要使用(!a && !b && !c)
希望对您有所帮助,
这与 De Morgan's laws 有关:
如果要反转语句,则必须反转每个运算符。
!a
变成a
,b
变成!b
,||
变成&&
,&&
变成||
.
所以你的第二个 if
的反转会是这样的
(code != '400' && code != '401' && code != '500')
if(code != '400' || code != '401' || code != '500'){}
永远为真,因为一个变量不能等于多个值
问题是||
首先,如果 500
的语句始终为真,这就是您遇到问题的原因/
以这种方式进行,它应该会按照您想要的方式工作(在您的 fiddle 中查看);
var code = 500;
alert(code);
console.log(code);
if (((code !== 400) || (code !== 401)) && (code !== 500)) {
console.log('true');
alert("123");
}
else if ((code == 400) || (code == 401) || (code == 500)) {
alert("456");
} else {
console.log("second true");
alert("else");
}