JavaScript if else 语句被忽略

JavaScript if else statement ignored

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

我在下面有一个简单的if语句:

function calculateTotal() {
    if (tanksize != 1 || tanksize != 2) {
        var setupPrice = basicPrice + StatPrice() + DigiStatPrice() + IRPrice() + UVPrice() + cagePrice();
        var setupPrice2 = toFixed(setupPrice, 2);
    } else {
        var setupPrice = basicPrice;
        var setupPrice2 = toFixed(setupPrice, 2);
    }

    //display the result at the top of page
    var divobj = document.getElementById('totalPrice');
    divobj.innerHTML = "£" + setupPrice2;
    //display the result at the bottom of page
    var divobj = document.getElementById('totalPrice2');
    divobj.innerHTML = "£" + setupPrice2;
}

但是当tanksize变量设置为 12 时,setupPrice变量仍然通过添加basicPrice + StatPrice...等来计算。

您需要使用:

if (tanksize !== 1 && tanksize !== 2) {

&&操作员,或

if (!(tanksize ===1 || tanksize === 2)) {

在您的代码中,只要值不是 1 或不是 2,就会执行第一个块,这相当于它始终执行。

如果值为 1 ,则tanksize != 2 true,因此tanksize!=1 || tanksize!=2 true

如果值为 2 ,则tanksize != 1 true,因此tanksize!=1 || tanksize!=2 true

换句话说,无论tanksize的价值如何,tanksize!=1 || tanksize!=2总是true

这句话总是正确的:

if(tanksize!=1 || tanksize!=2){

因为,当水箱大小 = 1 时,坦克大小不同于 2

当水箱大小 = 2 时,水箱大小不同于 1。

这不是 javascript 错误,您只需要更改逻辑即可在if中进行正确的测试......

尝试if(tanksize!=1 && tanksize!=2){而不是if(tanksize!=1 || tanksize!=2){<</p>

div class="answers">

你的逻辑是错误的。

事实上,两个不等于的 OR 运算符总是 TRUE(为此检查布尔表),条件语句"if"检查 TRUE 或 FALSE,因此您的代码将始终返回 TRUE

使用类似的东西

if(tanksize!=1 && tanksize!=2){
  # Your code
}
<</div> div class="answers">

(tanksize!=1 || tanksize!=2) 在这个语句中总是为真。更改运算符 ||到 &&

你的第一个条件总是 true ,例如,如果某些x = 1 ,则与 2 不同,反之亦然。
所以这个条件有点等于。

if(true) {
  // ...
}