JavaScript中开关大小写语句中的变量声明

JavaScript中开关大小写语句中的变量声明,javascript,function,variables,switch-statement,Javascript,Function,Variables,Switch Statement,我已经创建了一个函数day of theu week(dayy),并在函数中使用了switch case语句 function day_of_week(dayy) { var result; switch (dayy) { case 1: result = "monday"; case 2: result = "Tuesday";

我已经创建了一个函数day of theu 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语句以及函数实例下的所有语句。
请帮助…

我想做一些类似的事情来获得一个随机的一天:

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

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

代码中没有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>
 

每周的功能日(天){
var结果;
开关(日){
案例1:结果=“星期一”;
打破
案例2:结果=“星期二”;
打破
案例3:结果=“星期三”;
打破
案例4:结果=“星期四”;
打破
案例5:结果=“星期五”;
打破
案例6:结果=“星期六”;
打破
案例7:结果=“星期日”;
打破
默认值:result=“无日期”;
}
记录(结果);
}
document.getElementById(“开关”).innerHTML=一周中的第二天(2);

我使用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));

“应该随机执行”?是什么让你认为这段代码不是确定性的?如果没有中断,执行将“失败”。每个匹配案例中的语句都会运行,它不会“中断”第一个匹配案例中的switch语句。因此,每个案例都将以
默认值
案例结束,您将以
无日期
结束。事实上,我怀疑如果我的代码中没有break语句,那么所有日期都应该显示出来。但是,在我的代码中,变量结果由不同的案例重新声明,并执行最后一个案例值。实际上,我怀疑如果代码中没有break语句,那么所有的日期都应该显示出来。但是,在我的代码中,变量结果由不同的案例重新声明,并执行最后一个案例值。实际上,我怀疑如果代码中没有break语句,那么所有的日期都应该显示出来。但是,在我的代码中,变量result由不同的case重新声明,并执行最后一个case值。