switch语句
switch语句
1、语法结构
switch语句也是多分支语句,它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列的特定值的选项时,就可以使用switch
// 1、switch语句也是多分支语句 也可以实现多选1 // 2、语法结构 switch转换、开关 case 小例子或者选项的意思 /* switch (表达式) { case value1: 执行语句1; break; case value2: 执行语句2; break; ... default: 执行最后的语句; } */ // 3、执行思路 利用我们的表达式的值 和 case后面的选项值相匹配 如果匹配上,就执行该case里面的语句 如果都没有匹配上,那么执行 default里面的语句 // 4、代码验证 switch (2) { case 1: console.log('这是1'); break; case 2: console.log('这是2'); break; case 3: console.log('这是3'); break; default: console.log('没有匹配结果'); }
// switch注意事项 var num = 3; switch (num) { case 1: console.log(1); break; case 3: console.log(3); break; } // 1、我们开发里面 表达式我们经常写成变量 // 2、我们num 的值 和 case 里面的值相匹配的时候是 全等 必须是值和数据类型一致才可以 num===1 // 3、break 如果当前的case里面没有break 则不会退出switch 是继续执行下一个break
案例:
// 弹出prompt输入框,让用户输入水果名称,把这个值取过来保存到变量中 // 将这个变量作为switch括号里面的表达式 // case后面的值写几个不同的水果名称,注意一定要加引号,因为必须是全等匹配 // 弹出不同的价格即可,同意注意每个case之后加上break,一便退出switch语句 // 将default设置为没有此水果 var fruit = prompt('请输入您查询的水果:'); switch (fruit) { case '苹果': alert('苹果价格是2/斤'); break; case '香梨': alert('香梨价格是3/斤'); break; default: alert('没有此水果'); }
2、switch语句和if else if语句的区别
①一般情况下,它们两个语句可以相互替换
②switch......case语句通常处理case为比较确定值的情况,而if......else......语句更加灵活,常用于范围判断(大于、等于某个范围)
③switch语句进行条件判断后直接执行到程序的条件语句,效率更高,而if......else语句有几种条件,就得判断多少次。
④当分支比较少时,if......else语句的执行效率比switch语句高。
⑤当分支比较多时,switch语句的执行效率比较高,而且结构更清晰。
案例:
// 1、判断时间阶段,比如用户输入12点弹出中午好 用户输入18点弹出傍晚好 用户输入23点 弹出深夜好 var time = prompt('输入时间:'); switch (parseInt(time)) { case 12: alert('中午好'); break; case 18: alert('傍晚好'); break; case 23: alert('深夜好'); break; default: alert('你好'); }
// 2、比较两个数的最大值(用户依次输入2个值,最后弹出最大的那个值) var num1 = prompt('请输入第一个数'); var num2 = prompt('请输入第二个数'); if (num1 >= num2) { alert(num1); } else { alert(num2); }
// 3、用户输入一个数,求判断是奇数还是偶数 var num = prompt('请输入一个数:'); if (num % 2 == 0) { alert('偶数'); } else { alert('奇数'); }
// 4、根据用户输入的值(数字1到数字7),返回星期几 var week = prompt('请输入1~7的数字:'); switch (parseInt(week)) { case 1: alert('星期一'); break; case 2: alert('星期二'); break; case 3: alert('星期三'); break; case 4: alert('星期四'); break; case 5: alert('星期五'); break; case 6: alert('星期六'); break; case 7: alert('星期日'); break; default: alert('不存在'); }
// 5、接收班长口袋里的钱数?若大于等于2000,请大家吃西餐。若小于2000,大于等于1500,请大家吃快餐。若小于1500,大于等于1000,请大家喝饮料。若小于1000,大于等于500,请大家吃棒棒糖。否则提醒班长下次把钱带够 var money = prompt('班长口袋的钱:'); if (money >= 2000) { alert('吃西餐'); } else if (money >= 1500) { alert('吃快餐'); } else if (money >= 1000) { alert('喝饮料'); } else if (money >= 500) { alert('棒棒糖'); } else if (money < 500) { alert('下次再说'); }
// 6、分数转换,给一个分数,判断等级。大于等于90 A,大于等于80小于90B,大于等于70小于80C,大于等于60小于70D,小于60E的值 var score = prompt('请你输入分数:'); if (score >= 90) { alert('A'); } else if (score >= 80) { alert('B'); } else if (score >= 70) { alert('C'); } else if (score >= 60) { alert('D'); } else if (score < 60) { alert('E'); }
浙公网安备 33010602011771号