/*
/*
* 在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
*
*/