在JavaScript中,如何使用Switch语句

・7 分钟阅读

介绍

条件语句是所有编程语言中最有用和最常见的特性之一,"如何用JavaScript编写条件语句"描述如何使用ifelseelse if关键字来控制程序的流程。

除了if...else,JavaScript有一个叫做switch语句的特性,switch是一种条件语句,它根据多种可能的情况计算表达式,并基于匹配的案例执行一个或多个代码块,switch语句与包含许多else if块的条件语句紧密相关,它们通常可以互换使用。

在本教程中,我们学习如何使用switch语句,以及如何使用相关关键字casebreakdefault ,最后,我们介绍如何在switch语句中使用多个case。

开关

switch语句计算表达式,并且作为匹配案例的结果执行代码,

下面是一个带有两个case语句的switch语句以及default的例子。


switch (expression) {
 case x:
 // execute case x code block
 break;
 case y:
 // execute case y code block
 break;
 default:
 // execute default code block
}

表达式被求值 第一个casex,将根据表达式进行测试,如果匹配,代码将执行,并且break关键字将结束switch块,如果不匹配,将跳过x,并根据表达式对y案例进行测试,如果y匹配表达式,则代码将执行,并且退出switch 块,如果没有匹配的情况,default代码块运行,

在这个代码块中,我们用new Date()方法找到当前日期,getDay()表示打印一个与当前日期对应的数字,1代表星期一,通过7,它代表星期日,我们先设置变量。


const day = new Date().getDay();

week.js

// Set the current day of the week to a variable, with 1 being Monday and 7 being Sunday
const day = new Date().getDay();

switch (day) {
 case 1:
 console.log("Happy Monday!");
 break;
 case 2:
 console.log("It's Tuesday. You got this!");
 break;
 case 3:
 console.log("Hump day already!");
 break;
 case 4:
 console.log("Just one more day 'til the weekend!");
 break;
 case 5:
 console.log("Happy Friday!");
 break;
 case 6:
 console.log("Have a wonderful Saturday!");
 break;
 case 7:
 console.log("It's Sunday, time to relax!");
 break;
 default:
 console.log("Something went horribly wrong...");
}


Output'Just one more day 'til the weekend!'

Just one more day 'til the weekend! 根据你在星期几测试代码,你的输出将不同,

如果在每个语句中省略了break关键字,那么其他case语句将不会被评估为true,直到到达结束,为了使程序更快更高效,我们使用break

Switch范围

为了便于理解,使用一个熟悉的例子,在条件语句教程中,我们做了一个简单的评分程序,它将获得一个数字分数并将它转换为一个字母级,如下所示。

现在我们可以把它写成switch语句,

grades.js

// Set the student's grade
const grade = 87;

switch (true) {
 // If score is 90 or greater
 case grade >= 90:
 console.log("A");
 break;
 // If score is 80 or greater
 case grade >= 80:
 console.log("B");
 break;
 // If score is 70 or greater
 case grade >= 70:
 console.log("C");
 break;
 // If score is 60 or greater
 case grade >= 60:
 console.log("D");
 break;
 // Anything 59 or below is failing
 default:
 console.log("F");
}


Output'B'

要计算的括号中的表达式在本例子中为true

多个Case

你遇到多个case应该有相同输出的代码,为了完成这一点,你可以为每个代码使用多个case


const month = new Date().getMonth();

应用程序将输出四个季节,以满足以下要求:

Winter:一月,二月和三月 spring :四月,五月和六月 Summer :七月,八月和九月 Autumn:十月,十一月和十二月

下面是我们的代码。

seasons.js


// Get number corresponding to the current month, with 0 being January and 11 being December
const month = new Date().getMonth();

switch (month) {
 // January, February, March
 case 0:
 case 1:
 case 2:
 console.log("Winter");
 break;
 // April, May, June
 case 3:
 case 4:
 case 5:
 console.log("Spring");
 break;
 // July, August, September
 case 6:
 case 7:
 case 8:
 console.log("Summer");
 break;
 // October, November, December
 case 9:
 case 10:
 case 11:
 console.log("Autumn");
 break;
 default:
 console.log("Something went wrong.");
}


OutputSummer

结束语

在本文中,我们回顾了switch语句,这是一种条件语句,它计算表达式,并且根据匹配结果输出不同的值。使用一个范围和多个case语句来检查switch语句。

讨论
Yangchunyan110 profile image