5.1.4 if语句的嵌套
if语句可以嵌套使用。当if语句的从句部分(大括号中的部分)是另外一个完整的if语句时,外层if语句的从句部分的“{}”可以省略。但是,在使用if语句的嵌套应用时,最好使用“{}”来确定相互的层次关系。光盘中5.5.htm是一个if语句嵌套的例子,代码如下。
<script language="JavaScript"> <!-- var x=20;y=x; //x、y值都为20 if(x<1) //x为20,不满足此条件,故其下面的代码不会执行 { if(y==5) alert("x<1&&y==5"); else alert("x<1&&y!==5"); } else if(x>15) //x满足条件,继续执行下面的语句 { if(y==5) //y为20,不满足此条件,故其下面的代码不会执行 alert("x>15&&y==5"); else //y满足条件,继续执行下面的语句 alert("x>15&&y!==5"); //这里是程序输出的结果 } //--> |
运行该程序,会显示如图5.5所示结果。
|
| 图5.5 5.5.htm的运行结果 |
与上面的代码进行比较,光盘中5.6.htm也是嵌套语句,结果却不同,代码如下。
<script language="JavaScript"> <!-- var x=20;y=x; //x、y值都为20 if(x<1) //x为20,不满足此条件,故其下面的代码不会执行 { if(y==5) alert("x<1&&y==5"); else alert("x<1&&y!==5"); } else if(x>15) //x满足条件,继续执行下面的语句 { if(y==5) //y为20,不满足此条件,故其下面的代码不会执行 alert("x>15&&y==5"); } else //x已满足前面的条件,这里的语句不会执行 alert("x>50&&y!==1"); //由于没有满足的条件,故没有可执行的语句,也就没有输出结果 //--> </script> |
运行该程序,则不会出现任何结果。可以看出,只是由于“{}”使用位置的不同,造成了程序代码含义的完全不同。因此,在嵌套使用时,最好使用“{}”对程序代码明确其层次关系。