【问题标题】:Why is my criteria inside IF not working?为什么我在 IF 中的标准不起作用?
【发布时间】:2023-01-26 04:11:18
【问题描述】:

即使我输入了与标准完全相同的输入,代码仍然无法正常运行。

--> Link to the CodePen of this error <--

let addOrRem = String(prompt("Do you want to add or remove any content? (add/rem)").trim().toLocaleLowerCase());

    if(addOrRem !== "rem" || addOrRem !== "add") {
            alert("Invalid answer, try again!");
    }

如果我以捆绑方式编写完全相同的代码,则标准可以正常工作......

--> Link to the CodePen of this error partially solved <--

let addOrRem = String(prompt("Do you want to add or remove any content? (add/rem)").trim().toLocaleLowerCase());

    if(addOrRem !== "rem") {
      if(addOrRem !== "add"){
        alert("Invalid answer, try again!");
      }    
    }

我期待第一个代码给出与第二个代码完全相同的输出。我尝试将其切换为功能“while”,但导致了同样的问题。

【问题讨论】:

    标签: javascript logic


    【解决方案1】:

    那是因为您的条件实际上应该是 AND,而不是 OR。

    if (addOrRem !== "rem" && addOrRem !== "add")
    

    考虑到 addOrRem 只能等于一个值,因此 addOrRem !== "rem"addOrRem !== "add" 之一将始终为真(因此整个条件将始终为 true||)。 addOrRem不能同时等于"rem""add",这是你的原始条件为false所必需的。

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 2013-04-20
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多