清华大学出版社1第5章JavaScript的控制语句主要内容简单程序分支控制语句循环控制语句跳转控制语句函数递归函数1.分支控制语句是根据表达式或变量的取值来选择所执行的分支。2.循环控制语句是在一定条件下使程序能反复执行某个程序模块。3.跳转控制语句允许程序在某种条件下改变常规执行顺序,直接跳转到某个特定的位置继续执行。清华大学出版社25.1简单程序简单程序是指该程序自始至终按照语句序列的排列顺序执行。【例5-1】编制程序计算1+2+3+4+5。SCRIPTLANGUAGE=JavaScriptvarsum=0;sum=sum+1;sum=sum+2;sum=sum+3;sum=sum+4;sum=sum+5;document.write(sum);/SCRIPT清华大学出版社35.2分支控制语句主要内容5.2.1if语句5.2.2switch语句5.2.3多分支程序清华大学出版社45.2.1if语句1.if语句if语句的标准语句模式如下:if(条件){语句块1}[else{语句块2}]语句块3清华大学出版社55.2.1if语句2.简单判断语句格式:if(条件)语句3.选择判断语句格式:if(条件)语句块1else语句块2邻近匹配原则:else语句总是和同一个模块中的前面最近一个if语句相匹配。【例5-2】程序邻近匹配原则示例。x=0;if(ab){if(cd)x=1;if(e=f)x=2;elsex=3;}elsex=4;清华大学出版社65.2.2switch语句switch(表达式){case常量1:语句块1;[break;]case常量2:语句块2;[break;]case常量3:语句块3;[break;]//这里可添加任意多个case语句[default:隐含语句;……]}清华大学出版社75.2.2switch语句【例5-3】用switch语句构成的程序。SCRIPTLANGUAGE=JavaScriptvarx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}document.write(a=,a);document.write(BRb=,b);/SCRIPT清华大学出版社85.2.3多分支程序【例5-4】程序代码缩进书写的示例。SCRIPTLANGUAGE=JavaScriptvarm,season;m=parseInt(prompt(m=,0));if(m==12||m==1||m==2)season=冬;elseif(m==3||m==4||m==5)season=春;elseif(m==6||m==7||m==8)season=夏;elseif(m==9||m==10||m==11)season=秋;elseseason=illegalmonths;document.write(季节是+season+季);/SCRIPT清华大学出版社95.2.3多分支程序1.嵌套if语句的示例【例5-5】有如下的分段函数:y=-1(x0)y=0(x=0)y=1(x0)写程序,输入x的值,再计算并输出y的值。SCRIPTLANGUAGE=JavaScriptvarx,y;x=parseInt(prompt(x=,0));if(x0)y=-1;elseif(x=0)y=0;elsey=1;document.write(y=+y);/SCRIPT清华大学出版社105.2.3多分支程序2.嵌套switch语句的示例【例5-6】switch语句嵌套的示例。SCRIPTLANGUAGE=JavaScriptvarm,season;m=parseInt(prompt(m=,0));switch(m){case12:case1:case2:season=冬;break;case3:case4:case5:season=春;break;case6:case7:case8:season=夏;break;case9:case10:case11:season=秋;break;default:season=illegalmonths}document.write(季节是+season+季);/SCRIPT清华大学出版社115.3循环控制语句主要内容5.3.1for循环5.3.2for-in循环5.3.3while循环5.3.4do…while循环5.3.5循环程序的组成5.3.6多重循环清华大学出版社125.3.1for循环1.for循环语句的标准语句模式for循环允许程序员指定一个程序模块的重复执行次数,语句模式:for([初始化];[条件];[迭代]){……循环体}2.for循环的执行过程【例5-7】计算阶乘的程序一。SCRIPTLANGUAGE=JavaScriptvarfact=1;varn=5;for(i=1;i=n;i++)fact=fact*i;document.write(fact);/SCRIPT清华大学出版社135.3.1for循环【例5-8】计算阶乘的程序二。如果修改for循环语句中的三个参数,则可以得到计算阶乘的第二个程序,且实现功能不变。SCRIPTLANGUAGE=JavaScriptvarn=10;fact=n;for(i=n;i=1;i--)fact=fact*i;document.write(fact);document.write();/SCRIPT清华大学出版社145.3.2for-in循环for-in循环是一个指定对象中的所有属性值,或一个指定数组中的所有元素值。for-in循环的一般语句模式如下:for(变量in对象或数组){……循环体}【例5-9】一个使用for-in循环的示例。SCRIPTLANGUAGE=JavaScriptvara,i;a=newArray(2,4,6,8,10,1,3,5,7,9);for(iina)document.write(a[i]+,);/SCRIPT清华大学出版社155.3.3while循环1.while循环的语句模式while循环的语句模式如下:while(条件){……循环体}【例5-10】有一张厚一毫米的布,面积足够大,将它数次对折。问对折多少次,其厚度可以达到珠穆朗玛峰的高度。SCRIPTLANGUAGE=JavaScriptvarn=0;varh=1;while(h8848000){n=n+1;h=h+h;}document.write(对折次数为+n);清华大学出版社165.3.3while循环【例5-11】使用while循环来计算阶乘的程序。SCRIPTLANGUAGE=JavaScriptvarfact=1;vari=1;while(i=10){fact=fact*i;i++;}document.write(fact);document.write();/SCRIPT清华大学出版社175.3.4do…while循环1.do…while循环的标准语句模式do…while循环的标准语句模式如下:do{……循环体}while(条件)2.do…while循环的执行过程【例5-12】计算阶乘的程序示例。SCRIPTLANGUAGE=JavaScriptvarfact=1;vari=0;varn=5;do{i++;fact=fact*i}while(in);document.write(fact);/SCRIPT清华大学出版社185.3.5循环程序的组成循环程序由四部分组成:循环初始化部分循环控制部分循环工作部分循环修改部分清华大学出版社195.3.6多重循环【例5-13】编写百鸡问题的计算程序。如果公鸡五元一只,母鸡三元一只,小鸡一元三只,要求用100元购得100只鸡。SCRIPTLANGUAGE=JavaScriptvarcock,hen,chick;for(cock=1;cock20;cock++){for(hen=1;hen33;hen++){for(chick=1;chick100;chick++){cost=5*cock+3*hen+chick/3;count=cock+hen+chick;if(cost==100&&count==100){document.write(BR公鸡数:,cock);document.write(母鸡数:,hen);document.write(小鸡数:,chick);}}}}/SCRIPT清华大学出版社205.3.6多重循环【例5-14】百鸡问题的计算程序二。SCRIPTLANGUAGE=JavaScriptvarcock,hen,chick;for(cock=1;cock20;cock++){for(hen=1;hen33;hen++){chick=100-cock-hen;cost=15*cock+9*hen+chick;count=cock+hen+chick;if(cost==300){document.write(BR公鸡数:,cock);document.write(母鸡数:,hen);document.write(小鸡数:,chick);}}}/SCRIPT清华大学出版社215.4跳转控制语句主要内容5.4.1break语句5.4.2continue语句清华大学出版社225.4.1break语句break语句又称为间断语句,它可以用在如下两条语句中。在case语句之后的语句中附加break跳转控制语句,表示执行到break语句时要跳出整个switch语句的语句体部分。在循环结构中,使用break语句使流程跳出当前循环体,从而结束当前正在进行的循环过程。【例5-15】循环体中的break语句执行示例。SCRIPTLANGUAGE=JavaScriptvars=0;for(i=1;i=10;i++){s=s+i;if(s5)break;document.write(s=+s);}/SCRIPT清华大学出版社235.4.2continue语句continue语句又称为继续语句,它的功能是结束本次循环,即跳过本次循环中余下的全部语句,接着再一次进入循环。【例5-17】用continue语句构成的程序示例。PRESCRIPTLANGUAGE=JavaScriptvari,j;for(i=1;i=9;i++){for(j=1;j=9;j++){if(ji)continue;document.write(i*j+);}document.write(BR);}/SCRIPT/PRE清华大学出版社245.4.2continue语句【例5-18】使用if语句构成的程序示例。SCRIPTLANGUAGE=JavaScriptvari;for(i=1;i=5;i++){if(i%2)document.write(*);elsecontinue;document.write(#);}document.write($);/SCRIPT清华大学出版社255.5函数主要内容5.5.1返回语句5.5.2调用函数5.5.3函数调用中的参数传递5.5.4函数的嵌套调用5.5.5全局变量和局部变量清华大学出版社265.5.1返回语句返回语句的格式为:return(表达式)说明:表达式用于表示函数的返回值。return语句的功能是结束本次函数的执行过程,使之返回到调用程序中。定义函数必须以“return(表达式)”语句结尾,以function语句开头。若有可选项“(表达式)”,则函数返回该表达式的值,否则返回逻辑真。定义函数的名称必须是唯一的