文章目录
在本教程中,您将借助示例了解 JavaScript switch 语句。
JavaScript switch 语句用于决策。
switch 语句计算表达式并执行与表达式结果匹配的相应主体。
switch 语句的语法是:
switch(variable/expression) {
case value1:
// body of case 1
break;
case value2:
// body of case 2
break;
case valueN:
// body of case N
break;
default:
// body of default
}
switch 语句计算括号()内的变量/表达式。
- 如果表达式的结果等于 value1,则执行其主体。
- 如果表达式的结果等于 value2,则执行其主体。
- 程序继续。如果没有匹配的 case,则执行 default 主体。
笔记:
- break 语句是可选的。如果遇到 break 语句,switch 语句将结束。
- 如果未使用 break 语句,则也会执行匹配的 case 之后的 case。
- default 子句也是可选的。
switch 语句流程图
示例 1:使用 switch 语句的简单程序
// program using switch statement
let a = 2;
switch (a) {
case 1:
a = 'one';
break;
case 2:
a = 'two';
break;
default:
a = 'not found';
break;
}
console.log(`The value is ${a}`);
输出
The value is two.
在上面的程序中,用 switch 语句计算表达式 a=2。
- 表达式的结果用 case 1 计算,结果为 false。
- 然后 switch 语句转到第二种情况。这里,表达式的结果与 case 2 匹配。因此,显式 The value is two。
- break 语句终止该块,程序的控制流跳转到 switch 块的外部。
示例 2:switch 语句中的类型检查
// program using switch statement
let a = 1;
switch (a) {
case "1":
a = 1;
break;
case 1:
a = 'one';
break;
case 2:
a = 'two';
break;
default:
a = 'not found';
break;
}
console.log(`The value is ${a}`);
输出
The value is one.
在上面的程序中,用 switch 语句计算表达式 a=1。
- 在JavaScript中,switch语句严格检查值。因此表达式的结果与 case “1” 不匹配。
- 然后 switch 语句转到第二种情况。这里,表达式的结果与 case 1 匹配。因此,显示 The value is one。
- break 语句终止该块,程序的控制流跳转到 switch 块的外部。
注意:在JavaScript中,switch 语句根据表达式结果结果严格检查 case(应该是相同的数据类型)。注意,在上面的示例中,1 与 “1” 不匹配。
让我们编写一个程序,用 switch 语句制作一个简单的计算器。
示例 3:简单计算器
// program for a simple calculator
let result;
// take the operator input
const operator = prompt('Enter operator ( either +, -, * or / ): ');
// take the operand input
const number1 = parseFloat(prompt('Enter first number: '));
const number2 = parseFloat(prompt('Enter second number: '));
switch(operator) {
case '+':
result = number1 + number2;
console.log(`${number1} + ${number2} = ${result}`);
break;
case '-':
result = number1 - number2;
console.log(`${number1} - ${number2} = ${result}`);
break;
case '*':
result = number1 * number2;
console.log(`${number1} * ${number2} = ${result}`);
break;
case '/':
result = number1 / number2;
console.log(`${number1} / ${number2} = ${result}`);
break;
default:
console.log('Invalid operator');
break;
}
输出
Enter operator: +
Enter first number: 4
Enter second number: 5
4 + 5 = 9
在上面的程序中,要求用户输入 +、-、* 或 / 以及两个操作数。然后,switch 语句根据用户输入执行案例。
带有多个 case 的JavaScript switch
在JavaScript switch语句中,case 可以分组以共享相同的代码。
多个 case 的 switch
// multiple case switch program
let fruit = 'apple';
switch(fruit) {
case 'apple':
case 'mango':
case 'pineapple':
console.log(`${fruit} is a fruit.`);
break;
default:
console.log(`${fruit} is not a fruit.`);
break;
}
输出
apple is a fruit.
在上述程序中,多个 case 被分组。所有分组的 case 共享相同的代码。
如果 fruit 变量的值为 mango 或 pineapple,输出将是相同的。
推荐文章
上一教程 :JS continue 下一教程 :JS Functions
参考文档
[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/switch-statement