js脚本什么情况下可以使用switch结果代替多重if选择结构

JavaScript017

js脚本什么情况下可以使用switch结果代替多重if选择结构,第1张

如果你的代码是if(){

}else if(){

}else if(){

}else{}

这种就可以用switch代替,但是如果是

if(){

}else{

}

if(){

}else{

}

这种就最好不要啦

那个,前面的回答,我表示有意见。

首先,括号中的A,B,C,是用逗号隔开的三个表达式A、B、C,这个整体叫做逗号表达式。

何为逗号表达式 ?参见百科 http://baike.baidu.com/view/2393109.htm

直接点说,逗号表达式最后的值,是由表达式的最后一个表达式(这里是表达式C)决定的。但是,并不是像前面仁兄所说的不执行前面的,而是会一个一个执行(先A,然后B,最后C)。

如果把这个逗号表达式分开来写,应该是下面这样:

A

B

switch(C) {

}

下面写一个很简单的例子来说明这个问题:

<script>

var a, b, c

switch(a=2, b=3, c=a+b){

case 2:alert(2)break

case 3:alert(3)break

case 5:alert(5)break

default:alert('none')

}

</script>

上面的结果,是5 。 我想这是最有力的证明了!

都能写出不同的条件下,执行不同的语句程序。如果多种可能的条件,但相对而言,使用switch...case会更简洁直观,当然使用If...else if ...else也可以写出来,if语句中,复杂的条件表式更容易写。 不过两者还有个区别的,比如: <script>var num=91if(num>60){ document.write ("及格<br>")} else if(num>80){ document.write ("良<br>")} else{ document.write ("优<br>")} 输出的结果是: 及格 就是说当前一个条件满足的情况下,立即执行分支语句并退出,之后的将不再执行。 var num=91switch(true){ case num>60: document.write ("及格<br>")case num>80: document.write ("良<br>")case num>90: document.write ("优<br>")} 输出的结果是: 及格 良 优 就是说每个满足条件和分支语句都被执行,如果要和if...else...一样,需在各分支语句后加break。 如果这些差别都已经了解了,要选择哪种方式,就看你的了。