您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > JavaScript流程控制语句
第5章流程控制语句JavaScript程序是由若干个语句组成的,每一个语句以分号作为结束符。语句可以很简单,也可以很复杂。其中,改变程序正常流程的语句称为控制语句。流程控制语句是用来控制程序中各语句执行顺序的语句,是程序中基本却又非常关键的部分。流程控制语句可以把单个语句组合成有意义的、能完成一定功能的小逻辑模块。本章内容包括:顺序控制语句;选择控制语句;循环控制语句;其他流程控制语句。通过本章学习,读者应该对几种流程控制语句有很深的理解,并可以利用这几种流程控制语句编写简单的程序。5.1顺序控制语句JavaScript语言中,顺序控制语句是最简单的语句。其有如下特点:所有语句按照一定的顺序执行,每一条语句只执行一遍,不重复执行,也没有语句不执行。JavaScript语言中的顺序控制语句包括表达式语句,函数调用语句,空语句和复合语句等。5.1.1表达式语句表达式后面跟一个分号就构成了一个表达式语句。最常见的表达式语句为赋值语句。赋值语句是在一个赋值表达式后跟一个分号形成的,程序中很多计算都由赋值语句完成。【示例5-1】演示几个表达式语句。其代码如下所示。varm=4;//把4赋给变量mvarn=”helloworld”;//把字符串helloworld赋值给ni=m+n;//把变量m和n的和赋值给变量i实际上,任何表达式都可以加上分号而成为语句。【示例5-2】变量i自增1。i++;//变量i的值加1注意:有些语句写法虽然是合法的,但是由于其没有保留计算结果,因而并没有实际意义。如以下代码:a-b;i++-1;5.1.2函数调用语句函数将在本书第7章详细介绍,本节先介绍一下函数调用语句。函数调用语句是由函数调用加上分号组成的。其一般形式如下:函数名(实际参数列);执行函数语句是调用函数体,并把实际参数赋予函数定义中的形式参数,然后执行被调用函数体中的语句。如果是调用无参数函数,则“实参表列”可以没有,但是括号不能省略。如果实参表列包含多个实参,那么各个参数间需要用逗号隔开。实参与形参的个数应该相等,实参与形参按顺序对应,一一传递数据。【示例5-3】演示函数调用语句。其代码如下所示。functionsum(x,y)//定义函数sum(x,y){returnx+y;//返回变量x与y的和};a=2;b=2;c=sum(a,b);//调用函数sum(x,y),将值返回给c当然,函数是一段程序。这段程序可以存在于函数库中,也可能是由用户自己定义,当调用函数时会转到该段程序执行。但是函数调用是以语句的形式出现,它与前后语句之间的关系是顺序执行的。5.1.3空语句空语句是指只有一个分号的语句,即:;空语句不产生任何动作。在程序中,如果不需要进行任何操作,但是从语句的结构上来说,必须有一个语句时就可以写一个空语句。5.1.4复合语句在JavaScript语言中,可以用大括号{}把一些语句括起来,对外看作是一个语句,就构成一个复合语句。【示例5-4】演示用大括号括起来的复合语句。其代码如下所示。{i=2;j=3;m=i*j;}复合语句可以出现在允许语句出现的任何地方,在选择结构和循环结构中都会看到复合语句的用途。一般情况下,函数也是由复合语句构成的。5.2选择控制语句除了简单的顺序控制语句外,JavaScript语言还定义了一些可以控制程序执行流程的语句,这些语句提供对控制流的选择和循环功能。在JavaScript语言中,语句默认都是顺序执行。但如果遇到选择或循环语句,顺序执行的规则就要发生改变。JavaScript语言中的选择控制语句有:if语句、if…else语句和switch语句。5.2.1if语句和if…else语句if语句用于在程序中有条件地执行某一语句序列。if语句有多种形式的应用,下面分别介绍。1.双路条件选择双路条件选择语句是根据给定的条件进行判断,以决定执行哪一个分支程序段。程序控制结构如图5-1所示。if(条件表达式){语句序列1}else{语句序列2}代码说明:首先判断条件表达式是否为真,如果为真就执行语句序列1;如果条件表达式为假,就执行语句序列2。条件true语句序列1语句序列2false图5-1双路条件选择结构if和else都是JavaScript语言中的关键字,执行if语句时,程序先计算条件表达式的值,如果值为true,则执行语句序列1,如果值为false,则执行语句序列2。注意:分支语句序列如果只有一个语句,就不用大括号括起来;如果超过一个语句,分支中的所有语句都需要用大括号括起来,以便与分支之外的语句相区分。【示例5-5】演示双路条件语句序列。其代码如下所示。htmlheadtitle双路条件语句序列/title/headbodyscripttype=text/javascriptvarm,n;//定义两个变量m,nm=23;//变量的赋值n=35;if(mn)//条件语句{document.write(m大于n);}else{document.write(m小于n);}/script/body/html代码说明:首先定义初始化两个变量;然后判断两个变量的大小,如果mn,输出“m大于n”;如果mn为假,那么就输出“m小于n”。该程序的运行结果如图5-2所示。图5-2双路条件语句序列2.单路条件选择单路条件选择就是判断该条件表达式是否为真,如果为真就执行括号中的语句序列,否则就不执行该语句序列。程序执行流程如图5-3所示。if(条件表达式){语句序列}条件是否语句序列图5-3单路条件选择这个结构只有if分支,没有else分支,如果条件表达式成立,则执行if分支语句,否则执行if语句之后的其他语句。【示例5-6】演示单路条件选择。其代码如下所示。htmlheadtitle单路条件语句序列/title/headbodyscripttype=text/javascriptvarm,n;//定义两个变量m=23;//变量的赋值n=35;if(mn)//条件语句document.write(m小于n);/script/body/html代码说明:首先定义初始化两个变量m,n;然后判断表达式mn是否为真,如果为真就输出“m小于n”,为假就不做任何动作。该程序运行效果如图5-4所示。图5-4单路条件选择3.多重条件选择结构多重条件选择是判断一个条件表达式是否为真,如果为真就执行语句序列,否则就判断下一个条件表达式是否为真。其结构如下所示。if(条件表达式1){语句序列1}elseif(条件表达式2){语句序列2}……elseif(条件表达式n){语句序列n}else{语句序列n+1}这种条件选择结构对elseif进行更多的条件判断,不同的条件对应不同的语句组。同时,if语句还可对语句进行嵌套。注意:使用if嵌套语句时,最好使用{}来确定相互的层次关系。多重条件选择结构如图5-5所示。条件1否语句序列1条件2条件n语句序列2语句序列n语句序列图5-5多重条件选择序列【示例5-7】一个多重条件选择序列,用来判断分数所在区间,输出相应结果。其代码如下所示。htmlheadtitle多重条件语句序列/title/headbodyscripttype=text/javascript/*插入JavaScript语句*/varscore=78;//定义初始化变量score的值为78if(score=90)//多重条件语句{document.write(A);}elseif(score90&&score=80){document.write(B);}elseif(score80&&score=70){document.write(C);}elseif(score70){document.write(D);}/script/body/html代码说明:首先定义初始化变量score;判断score=90是否为真,如果为真就输出“A”,为假就继续下一个判断;接着判断score90&&score=80是否为真,如果为真就输出“B”,为假就继续下一个判断;再接着判断score80&&score=70是否为真,如果为真就输出“C”,为假就继续下一个判断;最后判断score70是否为真,如果为真就输出“D”,为假不做任何动作。该程序输出结果为“C”。5.2.2switch语句在多重条件选择的情况下,可使用if…else…结构来实现。但使用switch语句会使程序更加简练、清晰。switch语句式多分支的开关语句,常用于多重条件选择。它将一个表达式的值同许多其他值比较,并按比较结果选择执行下面的语句。switch语句的格式如下:switch(表达式){case常量表达式1:语句序列1;break;case常量表达式2:语句序列2;break;……case常量表达式n:语句序列n;break;default:语句序列n+1;break;}switch语句的执行顺序是:先计算switch语句中表达式的值;然后在case语句中寻找与该值相等的常量表达式,并以此作为入口标号,由此开始顺序执行。如果没有找到相等的常量表达式,则从default:开始执行。使用switch语句要注意以下问题:表达式可以是字符型或枚举型表达式;各常量表达式的值不能相同,但他们在switch语句中出现的次序不影响最后的执行结果;每个case分支可以有多条语句,不必用{};若干分支需要执行相同的操作时,可以使多个case分支共用一组语句。每个case语句只是一个入口标号,并不能确定执行终止点,因此每个case分支的最后可以加break语句,用来结束整个switch结构,否则会从入口点开始一直执行到switch结构结束点。【示例5-8】演示一个switch语句。其代码如下所示。htmlheadtitleswitch语句/title/headbodyscripttype=text/javascript/*插入javascript代码*/varscore=m;//定义初始化变量score的值为字符串mswitch(score)//判断score的值{casem://如果是“m”,就执行以下语句document.write(A);break;casen://如果是“n”,就执行以下语句document.write(B);break;default://默认执行以下语句document.write(default);}/script/body/html代码说明:该程序先定义初始化变量score赋值为m;switch语句中如果score的值为m则输出A;该程序运行结果如图5-6所示。图5-6switch语句5.3循环语句循环语句是在一定条件下,反复执行某段程序的控制结构,被反复执行的语句序列称为循环体。JavaScript语言中有3种常用的循环语句:for语句、while语句、do…while语句,除此之外还有label语句,break语句,continue语句。本节将详细讲解这几种循环语句。5.3.1for语句for语句通常用于预先知道循环次数的情况,其一般语法格式如下:for(表达式1;表达式2;表达式3){代码块}其中表达式1可以是一个初始化语句,一般用于对一组变量进行初始化或赋值。表达式2用作循环的条件控制,是一个条件或逻辑表达式,当其值为true时,继续下一次循环,当其值为false时,则终止循环。表达式3在每次循环结束后执行,一般用于改变控制循环的变量。代码块在表达式2为true时执行。for语句的具体执行过程是这样的:执行表达式1;计算表达式2的值;如果表达式2的值为true,先执行后面的语句,再执行表达式3,然后转向步骤1;如果表达式2的值为false,则结束整个for循环。【示例5-9】使用for语句循环输出i的值。其代码如下
本文标题:JavaScript流程控制语句
链接地址:https://www.777doc.com/doc-6332717 .html