JS基础练习

JS基础 -- switch练习

2018-05-11  本文已影响1人  我常常问自己我是谁

/*

        /*
         * 在JS基础_条件分支语句中结尾讲到了一个问题,那就是如果 num 的是任何数的话,那switch
            中case会需要写N个, 这样写的话代码、条件比较的时间、运行负担会都会是无限长和负担
            无限大,最终会导致程序卡顿甚至卡死或者闪退。
         * 
         * 那该如何解决这个问题呐?下面会讲到
         */
        /*
         * 题:
         *   对于成绩大于60分的输出‘合格’,低于60分的输出‘不合格’
         */
        //第一步,先声明一个变量,并赋值60或任意数字
        //          var score = 60;
        var score = prompt("请输入成绩:")
        //为了方便测试,我把60改为
        //第二步,创建switch,并添加条件表达式
        //          switch(score) {
        //              /*
        //               * case 60:这个是全等于score的值,但是,每次考试不可能都是60分,
                    //    *  也有可能是60以下任何一个数,也有可能是60以上任何一个数,
        //               * 我们不可能把从0 ~ 100的数全写出来,这显然是不可行的,
        //               */
        //              case 60:
        //                  alert("合格");
        //                  break;
        //          }
        //          switch(score / 10) {
        //  /*
        //   * 为什么case 10:、case 9:、case 8:、case 7:没有写alert("合格");和break;?
        //   * 其实这样写也是可以执行的,因为case是从上向下执行的,第一个没有全等于score值,
        //   * 那他就会继续向下全等比较,直到case全等于score才会结束并退出语句。
        //               * 
        //               * 那这样就可以了吗?
        //               * 当然不是的,这样写还是无法满足score的值是任何数的写法
        //               */
        //              case 10:
        //              case 9:
        //              case 8:
        //              case 7:
        //              case 6:
        //                  alert("合格");
        //                  break;
        //              default:
        //                  alert("不合格")
        //                  break;
        //          }
        switch(true) {
            case score >= 60:
                alert("合格");
                break;
            default:
                alert("不合格")
                break;
        }
        /*
         * 这样写的意思是当case的表达式 score大于等于60时条件成立了那就等于true,与switch()表
            达式的值也就是true全等,那么会执行case内语句。
         * 如果case的表达式 score不能大于等于60时是等于false,那么case内的语句不会执行,
            这时会继续执行下一个case或者default
         * 
         */
快给朕打赏
上一篇 下一篇

猜你喜欢

热点阅读