多重判断的时候不适合使用if语句,因为会需要写很多层,性能也差。所以对于多层判断,有个专门的语句叫做switch。
switch语句的语法结构如下:
// switch 判断语句
switch( expression ){
case value:statement //如果这个值等于这个值,就走这里
break; // 执行完退出
case value:statement
break;
case value:statement
break;
case value:statement
break;
......
default:statement // 如果上面的都不对,就执行这个
}
expression 是表达式,而不是判断条件,所以不能像if一样加符号。
来个小练习,判断并输出今天是星期几,用到的出了switch语句,还有获取星期和向页面输出这两个小知识点。
获取星期:new Date().getDay()
返回值是:number(0-6)
向浏览器输出内容(可以将内容显示在页面中):
document.write()
let week = new Date().getDay()
console.log(week)
switch ( week ){
case 0:
document.write('今天是星期日')
break;
case 1:
document.write('今天是星期一')
break;
case 2:
document.write('今天是星期二')
break;
case 3:
document.write('今天是星期三')
break;
case 4:
document.write('今天是星期四')
break;
case 5:
document.write('今天是星期五')
break;
default:
document.write('今天是星期六')
}
代码看上去很繁琐并且很多重复对不对?那我们就来优化一下吧。
let week = new Date().getDay()
let weekstr = ""
console.log(week)
switch ( week ){
case 0:
weekstr = "日"
break;
case 1:
weekstr = "一"
break;
case 2:
weekstr = "二"
break;
case 3:
weekstr = "三"
break;
case 4:
weekstr = "四"
break;
case 5:
weekstr = "五"
break;
default:
weekstr = "六"
}
document.write("今天是星期"+weekstr)
这样就简练多了。
再来一个小例子这个小例子有点特别的地方。
要求:
1.页面弹出输入框,让用户输入要查询的业务编号,
2.用switch语句写这段判断的代码,当用户输入数字1时,页面显示:账户余额为1;
3.当用户输入2时,页面显示:转账金额为2;
4.当用户输入3时,页面显示:信用额度为3;
5.当用户输入其他数字,页面显示:退出银行系统。
最好自己敲一下,然后再看我的代码,这样哪里有坑自己也好印象深刻,毕竟,不是自己踩得,终归记得不牢。
let ye = prompt('请输入您要查询的业务编码')
switch (ye){
// 需要注意的是case '1'是字符串而不是数字。
case '1':
document.write("账户余额为1")
break;
case '2':
document.write("转账金额为2")
break;
case '3':
document.write("信用额度为3")
break;
default:
document.write("退出银行系统")
}
网友评论