簡體   English   中英

JavaScript 中 switch-case 語句中的變量聲明

[英]Variable declaration in switch-case statements in JavaScript

我創建了一個函數 day_of_week(dayy) 並在函數中使用了 switch-case 語句。

function day_of_week(dayy) {
    var result;
    switch (dayy) {
        case 1:
            result = "monday";    
        case 2:
            result = "Tuesday";    
        case 3:
            result = "wednesday";    
        case 4:
            result = "thursday";    
        case 5:
            result = "friday";    
        case 6:
            result = "saturday";    
        case 7:
            result = "sunday";    
        default:
            result = "No day";
    }
    document.write(result);
}

document.getElementById("switch").innerHTML = day_of_week(1);
document.getElementById("switch").innerHTML = day_of_week(2);

實際上在 switch-case 語句中,如果沒有“中斷”,代碼應該隨機執行。 但是在這里,當我聲明名為 result 的變量並在沒有“中斷”的情況下將 case 值分配給它時。 因此,代碼應該隨機執行所有案例而不會中斷。 但是,這里的變量處於重新聲明值並執行最后一種情況的實例下。 我無法知道我的錯誤是在聲明變量還是使用 switch-case 語句以及所有在函數實例下。 請幫忙...

您的代碼中沒有 break 語句。 我希望這對你有用。

    <!DOCTYPE html>
<html>
<head>
<script>
function day_of_week(dayy){
   var result;
    switch(dayy){
      case 1: result = "Monday";
                         break;
         
        
        case 2: result = "Tuesday";
                          break;
        
        case 3: result = "wednesday";
                          break;
        
        case 4: result = "Thursday";
                          break;
        
        case 5: result = "Friday";
                          break;
        
        case 6: result = "Saturday";
                          break;
       
        case 7: result = "Sunday";
                          break;
        
        default: result = "No day";
   }
   document.write(result);

}
document.getElementById("switch").innerHTML = day_of_week(2);

</script>

</head>
<body>
</body>
</html>
 

我會做這樣的事情來獲得隨機的一天:

function getDay() {
    const days = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];

    return days[Math.floor(Math.random() * 7)];
}

我使用 berak 和 Math 方法重構了這段代碼

function day_of_week(day) {
     

    var result;
    switch (day) {
        case 1:
            result = "monday";
                 break;
        case 2:
            result = "Tuesday";    
                 break;
        case 3:
            result = "wednesday";  
                 break;
        case 4:
            result = "thursday";  
                 break;
        case 5:
            result = "friday"; 
                 break;
        case 6:
            result = "saturday";  
                 break;
        case 7:
            result = "sunday";   
                 break;
        default:
            result = "No day";
    }
    document.write(result);
}

document.getElementById("switch").innerHTML = day_of_week(Math.floor( Math.random()*10));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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