美文网首页JS基础练习
JS基础 -- switch练习

JS基础 -- switch练习

作者: 我常常问自己我是谁 | 来源:发表于2018-05-11 10:22 被阅读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
             * 
             */
    
    快给朕打赏

    相关文章

      网友评论

        本文标题:JS基础 -- switch练习

        本文链接:https://www.haomeiwen.com/subject/ltzxdftx.html