购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5.3 控制语句

在程序的执行过程中往往需要根据某些条件来决定执行哪些语句,这就需要选择型控制语句if 和switch来实现选择结构程序;某些情况下还会不断地重复执行某些语句,这就需要循环型控制语句for和while来完成循环结构程序。

1.if语句

用if语句可以实现选择结构。它根据给定的条件进行判断,以决定执行某个分支程序段。if语句有3种基本形式。

(1)第一种基本形式

if(表达式)

语句

功能描述:如果表达式的值为真,则执行其后的语句;否则,跳过该语句。

(2)第二种基本形式

if(表达式)

语句1

else

语句2

功能描述:如果表达式的值为真,则执行语句1;如果表达式的值为假,则执行语句2。

(3)第三种基本形式

if(表达式1)

语句1

else if(表达式2)

语句2

else if(表达式3)

语句3

else if(表达式n)

语句n

else

语句m

功能描述:如果表达式1的结果为真,则执行语句1,然后退出if选择语句,不执行下面的语句;否则判断表达式2,如果表达式2的结果为真,则执行语句2,然后退出if选择语句,不执行下面的语句,同样,如果表达式2的结果为假,则判断表达式3,依次类推,最后,如果表达式n不成立,则执行else后面的语句m。

在使用if语句时还要注意以下问题:

在3种基本形式中,if关键字后面均为表达式。该表达式通常是逻辑表达式或关系表达式,也可以是一个变量。

在if语句中,条件判断表达式必须用括号括起来。在语句之后必须加分号,如果是多行语句组成的程序段,则要用花括号括起来。

2.switch语句

switch语句可实现多分支的选择结构,在这种情况下,判断条件表达式的值由几段组成或不是一个连续的值,每一段或每一个值对应一段分支程序。switch语句的一般形式为:

switch(表达式)

{

case常量表达式1:

语句1

case常量表达式2:

语句2

case常量表达式n:

语句n

default:

语句m

}

switch语句的流程图如图1-40所示。

图1-40 switch语句的流程图

功能描述:计算表达式的值,并逐个与其后的常量表达式的值进行比较。当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续所有 case 后面的语句。如果表达式的值与所有case后的常量表达式均不相等,则执行default后的语句。

在使用switch语句时要注意以下问题:

(1)表达式的计算结果必须是整型或者字符型,也就是常量表达式1到常量表达式n必须是整型或字符型常量。

(2)每个case的常量表达式必须互不相同,但各个case出现的次序没有顺序。case语句标号后面的语句可以省略不写,在关键字case和常量表达式之间一定要有空格。

(3)当表达式的值与某个常量表达式的值相等并执行完其后的语句时,如果不想继续执行所有case后面的语句,则要在语句后面加上“break”,以跳出switch结构。

3.while语句

while语句能够实现“当型”循环结构,其一般形式为:

while(表达式)语句

功能描述:计算表达式的值,当值为真时,执行循环体语句;当表达式的值为假时,跳出循环体,结束循环。其中,表达式是循环条件,语句是循环体。

while语句的流程图如图1-41所示。

图1-41 while语句的流程图

在使用while语句时要注意以下几点。

不要混淆while语句的循环结构与if语句构成的选择结构。while 的条件表达式为真时,其后的循环体将被重复执行,而 if的条件表达式为真时,其后的语句只执行一次。

在循环体中应有使循环趋于结束的语句。如果没有,则会进入死循环。在编写嵌入式应用程序时,经常会用到死循环。

循环体若包含一个以上的语句,则应使用大括号括起来。

4.do-while语句

do-while语句用来实现“直到型”循环,其特点是先行循环体,然后判断循环条件是否成立,其一般形式为:

do

语句

while(表达式)

do-while语句流程图如图1-42所示。

功能描述:由于do-while循环为“直到型”循环,它先执行循环体中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假则终止循环。因此,do-while循环至少执行一次循环体语句。

注意:do-while语句在使用时除了要注意循环体至少执行一次的问题外,还要注意它是以do开始,以while结束,while(表达式)后的分号不能?

5.for语句

for 语句的使用极为灵活,可以完全取代 while 语句,它既可以用于循环次数确定的情况,又可以用于循环次数不确定而只是给出循环条件的情况。for语句的一般形式为:

for(表达式1;表达式2;表达式3)语句

for语句的流程图如图1-43所示。

功能描述:先求解表达式1,一般情况下,表达式1为循环结构的初始化语句,给循环计数器赋初值。然后求解表达式2,若其值为假,则终止循环;若其值为真,则执行for语句中的内嵌语句。内嵌语句执行完后,求解表达式3,最后继续求解表达式2,根据求解值进行判断,直到表达式2的值为假为止。

for语句最简单也是最典型的,其形式如下:

for(循环变量赋初值;循环条件;循环变量增量)语句

循环变量赋初值总是一个赋值语句,用来给循环控制变量赋初值;循环条件是一个关系表达式,决定什么时候退出循环;循环变量增量用来定义循环控制变量每次循环后按什么方式变化。这3个部分之间用分号分开。

图1-42 do-while语句流程图

图1-43 for语句的流程图

for循环语句的一般形式可用while语句进行解释,如下:

表达式1:

while(表达式2)

{ 语句

表达式3:

}

或者用do-while语句解释,如下:

表达式1:

do{

语句

表达式3

}while(表达式2):

在使用for语句时要注意以下几点:

(1)For循环中的表达式1、表达式2和表达式3都是选择项,但是分号不能省略。

(2)若3个表达式都省略,则for循环变成for(;;),相当于while(1)死循环。

(3)表达式2一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零,就执行循环体。

6.break语句

break语句通常在循环语句和switch语句中。当break用在switch语句中时,可使程序跳出switch而执行switch以后的语句。

当switch语句用在do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句。通常break语句总是与if语句连在一起的,即满足条件时便跳出循环。

7.continue语句

continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。continue 语句只用在do-while、for、while等循环体中,常与if语句连在一起使用,用来加速循环。

注意:continue语句与break语句的区别是,break语句结束整个循环过程,而continue语句只结束本次循环,不终止整个循环。

8.goto语句

goto语句是一个无条件转向语句,它的一般形式为:

goto语句标号:

功能描述:语句标号是一个冒号“:”的标识符,用于标语句的地址。当执行跳转语句时,使程序跳转到标识符指向的位置继续执行。将goto语句和if语句连在一起使用,可以构成一个循环结构。一般常见的是采用goto语句来跳出多重循环。注意,只能用goto语句从内层循环跳到外层循环,而不允许从外层循环跳到内层循环。 lzMp8Yj/pWMQJveo0icznLsviVAkU3CSOe/VNQkjJKI52DR3DsmYv8juVteOSXNK

点击中间区域
呼出菜单
上一章
目录
下一章
×