簡體   English   中英

使用switch語句檢查數字是奇數還是偶數的程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM