[英]Program to check if number is odd or even using switch statement
我正在嘗試編寫一個使用 switch 語句來檢查數字是奇數還是偶數的程序。
出於某種原因,我沒有在控制台上打印任何內容。 但是,當我添加默認情況時,它會自動打印默認情況(console.log(“無效輸入”)。有人可以解釋為什么這種方法不起作用嗎?
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”,它也會返回“hi 是奇數”。 這是我修改后的 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:尼娜的回答效果最好:
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
語句接受兩個值並使用嚴格比較,例如===
。
如果您使用內部case
boolean 值,您需要在switch
部分使用另一個對應的 boolean 值。
即使 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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.