JavaScript中的switch case语句
在JavaScript中,switch case语句是一种用于多个条件判断的控制流语句。它可以根据表达式的值来执行不同的代码块。在本文中,我们将详细介绍switch case语句的用法,并提供多个示例代码来帮助您更好地理解。
基本语法
switch case语句的基本语法如下:
switch(expression) {
case value1:
// 当expression的值等于value1时执行的代码块
break;
case value2:
// 当expression的值等于value2时执行的代码块
break;
...
default:
// 当expression的值不匹配任何case时执行的代码块
}
在上面的语法中,expression
是要进行判断的表达式,value1
、value2
等是不同的情况值,default
是可选的默认情况。当expression
的值等于某个case
的值时,将执行对应的代码块,并使用break
语句来终止switch
语句的执行。
接下来,我们将通过多个示例代码来演示switch case语句的用法。
示例代码
示例1:基本用法
let fruit = 'apple';
switch(fruit) {
case 'apple':
console.log('苹果');
break;
case 'banana':
console.log('香蕉');
break;
case 'orange':
console.log('橙子');
break;
default:
console.log('未知水果');
}
Output:
在上面的示例中,当fruit
的值为'apple'
时,将输出'苹果'
。
示例2:多个case匹配
let color = 'red';
switch(color) {
case 'red':
case 'pink':
console.log('红色系');
break;
case 'blue':
case 'green':
console.log('蓝绿色系');
break;
default:
console.log('其他颜色');
}
Output:
在上面的示例中,当color
的值为'red'
或'pink'
时,将输出'红色系'
。
示例3:不使用break
let num = 2;
switch(num) {
case 1:
console.log('数字1');
case 2:
console.log('数字2');
case 3:
console.log('数字3');
default:
console.log('其他数字');
}
Output:
在上面的示例中,由于没有使用break
语句,当num
的值为2
时,将输出'数字2'
、'数字3'
和'其他数字'
。
示例4:使用表达式作为case
let day = 'Monday';
switch(new Date().getDay()) {
case 0:
day = 'Sunday';
break;
case 1:
day = 'Monday';
break;
case 2:
day = 'Tuesday';
break;
case 3:
day = 'Wednesday';
break;
case 4:
day = 'Thursday';
break;
case 5:
day = 'Friday';
break;
case 6:
day = 'Saturday';
break;
}
console.log('今天是' + day);
Output:
在上面的示例中,根据当前日期的星期几来判断今天是星期几,并输出对应的结果。
示例5:使用default
let country = 'China';
switch(country) {
case 'USA':
console.log('美国');
break;
case 'Japan':
console.log('日本');
break;
default:
console.log('其他国家');
}
Output:
在上面的示例中,当country
的值不是'USA'
或'Japan'
时,将输出'其他国家'
。
示例6:嵌套switch case
let fruitType = 'apple';
let colorType = 'red';
switch(fruitType) {
case 'apple':
switch(colorType) {
case 'red':
console.log('红苹果');
break;
case 'green':
console.log('绿苹果');
break;
default:
console.log('其他颜色的苹果');
}
break;
case 'banana':
console.log('香蕉');
break;
default:
console.log('其他水果');
}
Output:
在上面的示例中,根据fruitType
和colorType
的值来判断输出的结果。
示例7:使用字符串作为case
let website = 'geek-docs.com';
switch(website) {
case 'google.com':
console.log('谷歌');
break;
case 'baidu.com':
console.log('百度');
break;
case 'geek-docs.com':
console.log('极客文档');
break;
default:
console.log('其他网站');
}
Output:
在上面的示例中,根据website
的值来判断输出的结果。
示例8:使用变量作为case
let num1 = 10;
let num2 = 20;
let operator = '+';
let result;
switch(operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
result = '未知运算符';
}
console.log('结果为:' + result);
Output:
在上面的示例中,根据operator
的值来执行不同的数学运算。
示例9:使用布尔值作为case
let isTrue = true;
switch(isTrue) {
case true:
console.log('是真的');
break;
case false:
console.log('是假的');
break;
default:
console.log('未知值');
}
Output:
在上面的示例中,根据isTrue
的值来判断输出的结果。
示例10:使用对象作为case
let person = {
name: 'Alice',
age: 25
};
switch(person) {
case {name: 'Bob', age: 30}:
console.log('Bob,30岁');
break;
case {name: 'Alice', age: 25}:
console.log('Alice,25岁');
break;
default:
console.log('其他人');
}
Output:
在上面的示例中,根据person
对象的属性值来判断输出的结果。