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语句中,如果没有“ break”,则代码随机执行。但是在这里,当我声明变量称为result并为其分配大小写值而没有“ break”时。因此,代码随机执行所有情况,而不会中断。但是,这里的变量在 重新声明该值并执行最后一种情况。 我无法知道我的错误是在声明变量还是使用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));