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');
        }

 

posted on 2020-04-09 16:58  sunandwang  阅读(1531)  评论(0)    收藏  举报