JavaScript判断语句补充switch

216 阅读1分钟

Switch语句

  • 语法: switch () {
    case 0 : {
    //条件满足执行的代码;
    }
    case 1 : {
    //条件满足执行的代码;
    }
    default : {
    // 以上条件不满足时执行的代码
    }
    }
  • switch 语句中,当一个条件满足以后,后面的代码也会执行 --- 穿透
  • break 阻止穿透 break语句只能在switch语句中使用,不能和if语句一起使用,会报错。
 var light = 'green';
        switch (light) {
            case 'red':
                {
                    document.write('stop' + '<br>');
                    //break; // 打破  阻止穿透
                }
            case 'green':
                {
                    document.write('go' + '<br>');
                    // break;
                }
            case 'yellow':
                {
                    document.write('wait' + '<br>');
                    //break;
                }
        }

image.png

  • 如上所示,没有break就会出现穿透,导致green往下的语句都会执行
  • 如下所示,存在break,找到对应的case,执行后悔跳出。就不会出现yellow所对应的值。

image.png

swith特殊用法

随机一个分数,判断是否及格。

  • 普通写法
 <script>
        // 随机一个分数,判断是否及格

        var score = Math.round(Math.random() * 100);
        console.log("你的分数是:" + score)
        score = Math.floor(score / 10);
        switch (score) {
            case 10:
                {
                    alert('yyds');
                    break;
                }
            case 9:
                {
                    alert('yyds');
                    break;
                }
            case 8:
                {
                    alert('666');
                    break;
                }
            case 7:
                {
                    alert('just so so');
                    break;
                }
            case 6:
                {
                    alert('还阔以');
                    break;
                }
            default:
                {
                    alert('下个班见')
                }
        }
    </script>

image.png

  • 特殊写法,让switch里面的值为布尔值,然后找到判断case的布尔值

    <script>
        // switch 可以做条件判断    true

        var score = 89;

        switch (true) {
            case score >= 60 && score < 70:
                {
                    alert('还阔以');
                    break;
                }
            case score >= 70 && score < 80:
                {
                    alert('不错');
                    break;
                }
            case score >= 80 && score < 90:
                {
                    alert('很棒');
                    break;
                }
            case score >= 90 && score < 100:
                {
                    alert('超级棒');
                    break;
                }
            default:
                {
                    alert("继续加油");
                }
        }
    </script>

if和switch的区别

  • 一般范围判断使用if语句
  • 准确值判断使用switch
  • 注意:switch 穿透 break if没有此功能