第二章 javascript控制语句
第一节 分支
1.程序的执行结构
程序的执行结构分三类:
顺序结构、分支结构、循环结构
总结:顺序结构就相当于走直路,从头走到尾。分支就像走岔路,满足特定条件才执行。循环就像跑圈,则特定条件下,反复执行某段代码。
2.if分支结构
if
分支一般用于范围条件判断,switch
一般用于定值条件判断。
2.1if 单分支
语法:
if(条件表达式) { /*条件为true时*/ 代码块; }
2.2if 双分支
语法:
if(条件表达式) { /*条件表达式为真时执行如下代码*/ 代码块; } else { /*条件表达式为假*/ 代码块; }
双分支结构执行时,如果条件表达式结果为true,则走if分支后的代码块,否则走else分支代码块,非此即彼,两者必选其一。
2.3if 多分支
语法:
if(条件表达式1) { 代码块1; } else if(条件表达式2) { 代码块2; } else if(条件表达式3) { 代码块3; } .... else /*除了上面条件之外的其他所有情况*/ { 代码块; }
3.switch分支
语法:
switch(变量) { case 数据1: 代码块1; break; case 数据2: 代码块2; break; case 数据3: 代码块3; break; ... default: /*不满足上面任何一支,则进入该分支*/ 代码块; break; }
第二节 while循环和do...while循环
循环:对于程序中某些特定的功能代码,需要在满足特定条件的情况下反复执行,知道条件不成立时结束。
1.while循环
语法:
while(条件表达式) { 代码块; }
2.do...while循环
do...while
循环与while循环类似,区别在于while
先判断条件,再执行代码。如果条件不成立时,代码一次都不执行。do...while
是先执行代码,再判断条件。所以,如果条件不成立时,代码至少会执行一次。
语法:
do { 循环代码块; }wihle(条件表达式);
第三节 for循环
语法:
for(变量的初始化;条件表达式;变量更新) { 循环代码块; }
第四节 break和continue
1.break
break
:在循环的过程中,在满足某些条件的情况下,中断循环的执行。
注意:switch
中的break用于结束某个分支。而循环中的break
是中断循环的。
for(var i=1;i<=10;i++) { if(i==5) { //中断循环 break; } document.write(i+"<br/>"); } document.write("循环结束");
<script type="text/javascript"> //循环输入5个人的分数,求总分和平均分, //如果分数输入有误,则结束输入,并输出错误提示。 //如果所有分数都输入无误,则输出总分和平均分 var sum = 0; //定义标识变量,记录输入过程是否有错 var flag=true; for(var i=1;i<=5;i++) { var score = Number(prompt("请输入第"+i+"个人的分数:","")); //判断分数是否有误 if(score<0 || score>100) { //输入错误时,修改标识 flag = false; break; } sum+=score; } //在循环结束之后,根据标识,判断是否输出统计信息 if(flag) { document.write("总分:"+sum+" 平均分:"+(sum/5)); } else { document.write("输入分数有误,无法统计"); } </script>
2.continue
continue
:在循环的过程中,在满足某些条件的情况下,跳过循环中的部分代码不执行,直接进入下次循环。
for(var i=1;i<=10;i++) { if(i==5) { //跳过continue后面的代码,进入循环的下一步 continue; } document.write(i+"<br/>"); } document.write("循环结束");
<script type="text/javascript"> //统计80分以上的人数 var count = 0; for(var i=1;i<=5;i++) { var score = Number(prompt("请输入第"+i+"个人的分数:","")); if(score<80) { continue; } count++; } document.write("80分以上的人数:"+count+" 所占比例:"+(count/5)*100+"%"); </script>
3.不定次循环
<script type="text/javascript"> //不定次数循环,吃包子 var count = 1; document.write("吃一个包子<br/>"); var answer = prompt("吃饱没有?","没吃饱"); while(answer!="吃饱了") { document.write("吃一个包子<br/>"); count++; answer = prompt("吃饱没有?","没吃饱"); } document.write("一共吃了:"+count+"个包子"); /* var count = 0; while(true) { document.write("吃一个包子<br/>"); count++; var answer = prompt("吃饱没有?","没吃饱"); if(answer=="吃饱了") { break; } } document.write("一共吃了:"+count+"个包子");*/ </script>
总结
-
while和do...while都能实现固定次数和不固定次数的循环,但是while和do...while更适合做不固定次数的循环。
-
while循环,先进行条件判断,再做代码的执行。而do...while先执行代码,再做条件判断。因此,do...while至少会执行一次代码
-
for循环适用于固定次数的循环。
-
break和continue可以修改循环的执行次序。