if-else语句相反

if else statement reverse

本文关键字:语句 if-else      更新时间:2023-09-26

我想要的结果是第二个if-else语句如果代码不在列表中,则发出警报,我不明白为什么第一个if-erse语句失败,我想只是反转第二个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');
    }

这与德摩根定律有关:

如果你想反转一个语句,你必须反转每个运算符。

!a变成ab变成!b||变成&&&&变成||

所以你的第二个if的反转会有点像

(code != '400' && code != '401' && code != '500')

您可能需要查看Morgan定律。

基本上,如果你想否定(a || b || c),你需要使用(!a && !b && !c)

希望有帮助,

if(code != '400' || code != '401' || code != '500'){}

始终为true,因为一个变量不能等于多个值

问题是||首先,若500的语句总是正确的,那个么这就是您遇到问题的原因/这样做,它应该按照你想要的方式工作(在你的小提琴里检查一下);

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");
}