概要
- 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、122.30天:4、6、9、113.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…的简写形式,因此可以用于多种场合。
