【问题标题】:How do i fix my else if in jscript? It's not working如果在 jscript 中,我该如何解决我的 else 问题?它不工作
【发布时间】:2020-10-20 22:12:51
【问题描述】:

我有一个超级简单的 jscript 程序(在 html 文件中)。 if 和 else 都在工作,但是 else if 永远不会工作......

var num1 = prompt("Enter first number");
var num2 = prompt("Enter second number");
function result(){
if(num1 == 10 || num2 == 10){
    alert("one of entered numbers is 10, great!")
    return true
}else if((num1+num2) == 10){
    alert("The sum of 2 numbers is 10, great!")
    return true
}else{
    alert("None of numbers, or the sum is 10")
    return false
}
}
alert("Result is: ", result())

所以,如果其中一个数字是 10,它首先显示 if,但如果它是 5 和 5,或 6 和 4 - 它总是显示 else,我不明白为什么 else if 总是被忽略... 我如何提醒结果(真/假)?它总是说“结果是:”

【问题讨论】:

  • 问题是prompt()返回一个字符串,当你添加两个字符串时它们被连接起来。所以如果你输入 5 和 5,你会得到num1 + num2 == "55"。您可以通过使用Number(num1)+num1 转换为数字来解决此问题。

标签: html if-statement jscript


【解决方案1】:

我认为您的提示将输入保存为字符串,在这里我将它们转换为整数,它似乎工作。 https://jsfiddle.net/fk0tr196/

var num1 = prompt("Enter first number");
var num2 = prompt("Enter second number");
num1 = parseInt(num1,10);
num2 = parseInt(num2,10);
function result(){
if(num1 == 10 || num2 == 10){
    alert("one of entered numbers is 10, great!")
    console.log(num1);
    return true
}else if((num1+num2)== 10){
        console.log(num1);
    alert("The sum of 2 numbers is 10, great!")
    return true
}else{
    alert("None of numbers, or the sum is 10")
    return false
    console.log(num1);
}
}
alert("Result is: ", result())

【讨论】:

  • 谢谢,这行得通!你知道吗,为什么 alert(result()) 不显示真/假 - 只是空白?
  • 您正在尝试与 连接,这不是一个运算符。试试:alert("结果是:" + result());
【解决方案2】:

看看类型强制,严格相等和prompt函数是js。 The prompt function 接收两个可选参数并返回一个 string(与我无关)。

当使用 num1 = 5num2 = 5 调用您的结果函数时,您实际上有:

num1 = "5"
num2 = "5"

看到区别了吗?如果您不相信我,只需 console.log(typeof num1) 或 num2 并自己检查!

现在,当您使用双等号时,您允许类型强制尝试相等,或者换句话说,您接受5 equals "5"。这有时会有所帮助,但通常您会希望避免使用它并使用===,它仅在 VALUE 和 TYPE 相同时评估 true

总之,

5 == "5" // true
5 === "5" // false

因此,当您的值之一是“10”时,if 语句为 true 并且有效。任何其他情况都属于else,因为当您+ 两个字符串时,您实际上是在连接它们。 实际上,在两个提示中输入 5 将导致 "55"else if 语句中,从而导致 false

有一些方法可以将字符串转换为数字: 1-Number(variable) 2-parseInt(variable) 3-+variable

每个都有一些差异,但在这个阶段,你不应该担心

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-17
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多