用JavaScript中的switch语句编写if..else语句

用JavaScript中的switch语句编写if..else语句,javascript,switch-statement,Javascript,Switch Statement,如何使用JavaScript中的switch语句编写if..else语句 var hour = new Date().getHours(); var msg = ""; if (hour >= 0 && hour < 6) { msg = "بامداد شما بخیر !"; } else if (hour >= 6 && hour < 11) { msg = "صبح شما بخیر !"; } else if (h

如何使用JavaScript中的switch语句编写if..else语句

var hour = new Date().getHours();
var msg = "";
if (hour >= 0 && hour < 6) {
    msg = "بامداد شما بخیر !";
} else if (hour >= 6 && hour < 11) {
    msg = "صبح شما بخیر !";
} else if (hour >= 11 && hour < 15) {
    msg = "ظهر شما بخیر !";
} else if (hour >= 15 && hour < 20) {
    msg = "عصر شما بخیر !";
} else if (hour >= 20 && hour < 24) {
    msg = "شب شما بخیر !";
} else {
    msg = "ساعت وارد شده نامعتبر است !";
}
print(hour);
print("------------------------");
print(msg);
var hour=new Date().getHours();
var msg=“”;
如果(小时>=0和小时<6){
msg=“ب㶕㶕㶕㶬㶕㶕ی!”;
}如果(小时数>=6和小时数<11),则为其他情况{
msg=“1588!”;
}否则,如果(小时>=11和小时<15){
msg=“ظهشاببی!”;
}否则,如果(小时>=15和小时<20){
msg=“عشمببی撹!”;
}如果(小时数>=20和小时数<24),则为其他情况{
msg=“1588”;
}否则{
msg=“سعتت㶬ده㶪㶪㶪㶪㶪㶪!”;
}
打印(小时);
打印(“---------------------------”);
印刷品(味精);

因为
小时
只有24个离散值,所以您可以在一个开关箱中处理所有这些值:

switch (hour) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
    msg = "بامداد شما بخیر !";
    break;
case 6:
case 7:
case 8:
case 9:
case 10:
    msg = "صبح شما بخیر !";
    break;
case 11:
case 12:
case 13:
case 14:
    msg = "ظهر شما بخیر !";
    break;
case 15:
case 16:
case 17:
case 18:
case 19:
    msg = "عصر شما بخیر !";
    break;
default:
    msg = "شب شما بخیر !";
}

但老实说,这不是白费力气。使用if-else更合适。

因为
hour
只有24个离散值,所以您可以在一个开关案例中处理所有这些值:

switch (hour) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
    msg = "بامداد شما بخیر !";
    break;
case 6:
case 7:
case 8:
case 9:
case 10:
    msg = "صبح شما بخیر !";
    break;
case 11:
case 12:
case 13:
case 14:
    msg = "ظهر شما بخیر !";
    break;
case 15:
case 16:
case 17:
case 18:
case 19:
    msg = "عصر شما بخیر !";
    break;
default:
    msg = "شب شما بخیر !";
}

但老实说,这不是白费力气。使用if-else更合适。

首先我要说的是,我不会将其重写为
开关。但我肯定会改变它。(不过,我将执行下面的
开关

首先,你的
案例永远不会发生
getHours
返回一个介于0和23之间(包括0和23)的数字。因此,不需要处理
<0
=24
的情况

我是这样写的:

var hour = new Date().getHours();
var msg;
if (hour < 6) {
    msg = "بامداد شما بخیر !";
} else if (hour < 11) {
    msg = "صبح شما بخیر !";
} else if (hour < 15) {
    msg = "ظهر شما بخیر !";
} else if (hour < 20) {
    msg = "عصر شما بخیر !";
} else {
    msg = "شب شما بخیر !";
}
print(hour);
print("------------------------");
print(msg);
工作原理:JavaScript的
开关
允许
大小写
标签成为表达式。它根据您在
开关
中给出的值,按源代码顺序计算每个
案例
,取第一个匹配的案例。如果没有匹配的案例,则使用
默认值
(无论默认值在源代码中的什么位置)


再说一遍:我不会那么做的。但问题是如何做到这一点。:-)

首先我要说的是,我不会将其重写为
开关。但我肯定会改变它。(不过,我将执行下面的
开关

首先,你的
案例永远不会发生
getHours
返回一个介于0和23之间(包括0和23)的数字。因此,不需要处理
<0
=24
的情况

我是这样写的:

var hour = new Date().getHours();
var msg;
if (hour < 6) {
    msg = "بامداد شما بخیر !";
} else if (hour < 11) {
    msg = "صبح شما بخیر !";
} else if (hour < 15) {
    msg = "ظهر شما بخیر !";
} else if (hour < 20) {
    msg = "عصر شما بخیر !";
} else {
    msg = "شب شما بخیر !";
}
print(hour);
print("------------------------");
print(msg);
工作原理:JavaScript的
开关
允许
大小写
标签成为表达式。它根据您在
开关
中给出的值,按源代码顺序计算每个
案例
,取第一个匹配的案例。如果没有匹配的案例,则使用
默认值
(无论默认值在源代码中的什么位置)

再说一遍:我不会那么做的。但问题是如何做到这一点。:-)

可能的重复可能的重复