概要
- switch语句
-
1、switch语句
多个if…else连在一起使用的时候,可以转为使用更方便的switch结构。
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}
上面代码根据变量fruit的值,选择执行相应的case。如果所有case都不符合,则执行最后的default部分。需要注意的是,每个case代码块内部的break语句不能少,否则接下来会去执行下一个case代码块,而不是跳出switch结构。
需要注意的是,switch语句后面的表达式,与case语句后面的表达式比较运行结果时,采用的是严格相等运算符(===),而不是相等运算符(==)。练习:输入月份,显示当月的天数,利用case穿透简化代码。
/*
输⼊⽉份,显示当⽉的天数, 利⽤case穿透简化代码
1.31天:1、3、5、7、8、10、12
2.30天:4、6、9、11
3.2月份:
闰年:29
平年:28
什么是闰年?
1、通常能被4整除的年份是闰年,不能被4整除的年份是平年。
如:1988年2008年是闰年;2005年2006年2007年是平年。
2、如果是世纪年,即整百年能被400整除是闰年,否则是平年。
如:2000年就是闰年,1900年就是平年。
*/
var year = 2100;
var month = 2;
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
console.log("31天");
break;
case 4: case 6: case 9: case 11:
console.log("30天");
break;
case 2:
if (year % 4 === 0 && year % 400 == 0) { // 闰年
console.log("29天");
} else {
console.log("28天");
}
break;
default:
console.log("您输入了不正确的值");
break;
}
2、三元运算符
JS还有一个三元运算符(即该运算符需要三个运算子)
?:
,也可以用于逻辑判断(条件) ? 表达式1 : 表达式2
上面代码中,如果“条件”为true,则返回“表达式1”的值,否则返回“表达式2”的值
(n % 2 === 0) ? true : false;
上面代码中,如果n可以被2整除,则even等于true,否则等于false。它等同于下面的形式。
if (n % 2 === 0) {
console.log("偶数")
} else {
console.log("奇数")
}
这个三元运算符可以被视为if…else…的简写形式,因此可以用于多种场合。