当判断范围值时,我们一般用if else结构,switch结构更多的用于判断定值。
如果要用switch结构判断范围值问题时,switch后不要写变量,否则会一直打印default的结果。
如以下代码:
var money = parseInt(prompt('班长口袋里的钱数:'));
//money 和 money >= 2000不是全等关系,所以不成立;switch后要跟case条件后的返回值
switch (money) {
case (money >= 2000):
alert('请大家吃西餐');
break;
case money >= 1500 && money <2000:
alert('请大家吃快餐');
break;
case money >= 1000 && money <1500:
alert('请大家喝饮料');
break;
case money >=500 && money <1000:
alert('请大家吃棒棒糖');
break;
default:
alert('下次带够钱');
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在switch结构中,switch后括号中的表达式或者值要和case后括号中的表达式或者值全等,否则就会不成立。而比如我输入了4000,4000 已经 大于等于了2000,这个表达式的结果是true,可以得出正确代码:
var money = parseInt(prompt('班长口袋里的钱数:'));
//当改成true后,运行顺利
switch (true) {
case (money >= 2000):
alert('请大家吃西餐');
break;
case money >= 1500 && money <2000:
alert('请大家吃快餐');
break;
case money >= 1000 && money <1500:
alert('请大家喝饮料');
break;
case money >=500 && money <1000:
alert('请大家吃棒棒糖');
break;
default:
alert('下次带够钱');
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18