使用 switch 语句检查数字是奇数还是偶数的程序
Program to check if number is odd or even using switch statement
我正在尝试编写一个使用 switch 语句来检查数字是奇数还是偶数的程序。
出于某种原因,我没有将任何内容打印到控制台。但是,当我添加默认情况时,它会自动打印默认情况 (console.log("Invalid input")。有人可以解释为什么这种方法不起作用吗?
var enteredNumber = 40;
var enteredNumber_div_by2 = enteredNumber/2;
switch(enteredNumber_div_by2) {
case Number.isInteger(enteredNumber_div_by2) === true:
console.log(enteredNumber.toString() + " is an even number.");
break;
case Number.isInteger(enteredNumber_div_by2) === false:
console.log(enteredNumber.toString() + " is an odd number.");
break;
case enteredNumber_div_by2.isNaN() === true:
console.log("Invalid input");
break;
default:
console.log("Invalid input");
}
编辑:以防其他人像我一样试图理解 switch 语句,我根据 Rocket 的回答修改了我的代码,它现在可以工作了。我意识到这不是检查数字是奇数还是偶数的最佳方法,但我这样做只是为了理解 switch 语句。此外,我意识到我的代码并没有真正检查输入是否为数字,所以即使你输入“hi”它也会 return “hi is an odd number”。这是我修改后的 switch 语句:
switch(Number.isInteger(enteredNumber_div_by2) === true) {
case true:
console.log(enteredNumber.toString() + " is an even number.");
break;
case false:
console.log(enteredNumber.toString() + " is an odd number.");
break;
default:
console.log("Invalid input")
编辑 2:Nina 的回答最有效:
switch (enteredNumber % 2) {
case 0:
console.log(enteredNumber.toString() + " is an even number.");
break;
case 1:
console.log(enteredNumber.toString() + " is an odd number.");
break;
default:
console.log("Invalid input")
}
您可以取余数并检查它的价值。
switch
statement取两个值并使用严格比较,如===
。
如果您在 case
中使用布尔值,则需要在 switch
部分使用另一个对应的布尔值。
即使 Javascript 提出在两个部分都使用动态内容,有些人倾向于只接受常量值进行比较,而不是动态值。
var enteredNumber = 40;
switch (enteredNumber % 2) {
case 0:
console.log(enteredNumber + " is an even number.");
break;
case 1:
console.log(enteredNumber + " is an odd number.");
break;
default:
console.log("Invalid input");
}
这不是 switch
语句的工作方式。 switch
用于将变量与值列表进行比较。如:
let a = 'a';
switch(a) {
case 'a':
break;
case 'b':
break;
}
如果要检查 Number.isInteger(enteredNumber_div_by2)
,则只需使用 if
/else
:
if (Number.isInteger(enteredNumber_div_by2)) {
console.log(enteredNumber.toString() + " is an even number.");
}
else {
console.log(enteredNumber.toString() + " is an odd number.");
}
如果出于某种原因你真的想在这里使用switch
,你必须这样做:
switch (Number.isInteger(enteredNumber_div_by2)) {
case true:
console.log(enteredNumber.toString() + " is an even number.");
break;
case false:
console.log(enteredNumber.toString() + " is an odd number.");
break;
}
我正在尝试编写一个使用 switch 语句来检查数字是奇数还是偶数的程序。
出于某种原因,我没有将任何内容打印到控制台。但是,当我添加默认情况时,它会自动打印默认情况 (console.log("Invalid input")。有人可以解释为什么这种方法不起作用吗?
var enteredNumber = 40;
var enteredNumber_div_by2 = enteredNumber/2;
switch(enteredNumber_div_by2) {
case Number.isInteger(enteredNumber_div_by2) === true:
console.log(enteredNumber.toString() + " is an even number.");
break;
case Number.isInteger(enteredNumber_div_by2) === false:
console.log(enteredNumber.toString() + " is an odd number.");
break;
case enteredNumber_div_by2.isNaN() === true:
console.log("Invalid input");
break;
default:
console.log("Invalid input");
}
编辑:以防其他人像我一样试图理解 switch 语句,我根据 Rocket 的回答修改了我的代码,它现在可以工作了。我意识到这不是检查数字是奇数还是偶数的最佳方法,但我这样做只是为了理解 switch 语句。此外,我意识到我的代码并没有真正检查输入是否为数字,所以即使你输入“hi”它也会 return “hi is an odd number”。这是我修改后的 switch 语句:
switch(Number.isInteger(enteredNumber_div_by2) === true) {
case true:
console.log(enteredNumber.toString() + " is an even number.");
break;
case false:
console.log(enteredNumber.toString() + " is an odd number.");
break;
default:
console.log("Invalid input")
编辑 2:Nina 的回答最有效:
switch (enteredNumber % 2) {
case 0:
console.log(enteredNumber.toString() + " is an even number.");
break;
case 1:
console.log(enteredNumber.toString() + " is an odd number.");
break;
default:
console.log("Invalid input")
}
您可以取余数并检查它的价值。
switch
statement取两个值并使用严格比较,如===
。
如果您在 case
中使用布尔值,则需要在 switch
部分使用另一个对应的布尔值。
即使 Javascript 提出在两个部分都使用动态内容,有些人倾向于只接受常量值进行比较,而不是动态值。
var enteredNumber = 40;
switch (enteredNumber % 2) {
case 0:
console.log(enteredNumber + " is an even number.");
break;
case 1:
console.log(enteredNumber + " is an odd number.");
break;
default:
console.log("Invalid input");
}
这不是 switch
语句的工作方式。 switch
用于将变量与值列表进行比较。如:
let a = 'a';
switch(a) {
case 'a':
break;
case 'b':
break;
}
如果要检查 Number.isInteger(enteredNumber_div_by2)
,则只需使用 if
/else
:
if (Number.isInteger(enteredNumber_div_by2)) {
console.log(enteredNumber.toString() + " is an even number.");
}
else {
console.log(enteredNumber.toString() + " is an odd number.");
}
如果出于某种原因你真的想在这里使用switch
,你必须这样做:
switch (Number.isInteger(enteredNumber_div_by2)) {
case true:
console.log(enteredNumber.toString() + " is an even number.");
break;
case false:
console.log(enteredNumber.toString() + " is an odd number.");
break;
}