首页 理论教育 C语言程序设计教程:循环结构及其控制语句

C语言程序设计教程:循环结构及其控制语句

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:循环结构是指按照一定的条件,控制重复执行某个程序段的一种结构。图3-12while循环流程图⑤对while循环,如果表达式的初始值就为“假”,则循环体一次都不被执行。同样,在循环结构中,也可用break语句终止本层循环体,提前结束本层循环。continue语句的作用是跳过当前循环体后面的语句,即结束本次循环,进行下一次循环。

循环结构是指按照一定的条件,控制重复执行某个程序段的一种结构。C语言中用来实现循环控制结构的语句有3种:for语句、while语句、do-while语句。

1.for语句

for语句的语法格式如下。

说明:

①表达式1,一般是一个赋值表达式,用于给循环控制变量赋初值。

②表达式2,一般是一个关系表达式或逻辑表达式,它决定什么时候退出循环。

③表达式3,一般是一个算术表达式,定义循环控制变量每循环一次后按什么方式变化。

④for语句中,圆括号后面没有“;”。

⑤通常称花括号内的语句段为“循环体”,其可以由一条或多条语句构成。如果只有一条语句,则花括号可以不要。

for循环的执行过程是:首先计算表达式1的值,再判断表达式2,如果其值为“真”(即表达式2的值非0),则执行循环体,并计算表达式3;接着再转去判断表达式2,一直到其值为“假”(即值为0)时结束循环,执行后续语句。for循环的执行过程如图3-10所示。

图3-10 for循环结构流程图

for循环不仅可以用于循环次数已经确定的情况,也可以用于循环次数不确定的情况;for后圆括号内的三个表达式可以是C语言的任何一种表达式,也可以都缺省,但三个部分的分号不能省。

对for循环,如果表达式2的初始值就为“假”,则循环体一次也不被执行。

例3-7 用for语句编程,求101~1000之间所有整数的和。

程序运行结果如图3-11所示。

图3-11 程序运行结果

例3-8 用for语句,输出1到100的所有偶数。

2.while语句

while循环是一种典型的“当型”循环结构,根据判断条件决定是否执行循环体。

while语句的语法格式如下。

说明:

①while后圆括号中的表达式用来控制循环体是否执行,一般是关系表达式或逻辑表达式,也可以是返回值为0或非0的其他合法表达式。

②圆括号后面也是没有分号“;”,否则会发生空循环。

③花括号内的内嵌语句为循环体。

④while语句的执行过程是:首先计算表达式的值,当其值为“真”(即表达式值非0)时,重复执行循环体。每执行一次,就判断一次表达式的值,直到其值为“假”(即表达式值为0)时,结束循环,执行后续语句。while循环的执行过程如图3-12所示。

图3-12 while循环流程图

⑤对while循环,如果表达式的初始值就为“假”,则循环体一次都不被执行。

例3-9 用while语句,求101~1000之间所有整数的和。

(www.xing528.com)

3.do-while语句

do-while语句是一种“直到型”循环结构。该语句执行时,先进入循环执行循环体,再进行条件判断。根据循环条件是否成立,决定是否继续执行循环体。do-while语句的语法格式为:

说明:

①do后面的内嵌语句是循环体。

②while后面圆括号内的表达式用于进行条件判断,决定循环体是否继续执行。圆括号后面有“;”,表示语句结束,这与for循环、while循环语句不同。

③do-while语句的执行过程是:首先执行循环体,然后计算while圆括号中表达式的值,当其值为“真”(即值非0)时,再重复执行循环体,并判断条件,直到表达式的值为“假”(即值为0)时,结束循环,执行do-while语句的后续语句。do-while循环的执行过程如图3-13所示。

图3-13 do-while循环流程图

④do-while语句的循环体,至少被执行一次。

例3-10 用do-while语句,求101~1000之间所有整数的和。

说明:

无穷循环:在使用循环结构时,如果忘记了更新循环控制变量,就会出现循环条件始终为真的情况,这时就会出现无穷循环(无限次的循环)。除非特殊需要,一般情况下,要尽量避免出现这种情况。

在图3-14中,所示的两种循环结构都表示无穷循环(或永真循环),这两种循环结构在功能上是等价的。

图3-14 两种无穷循环

4.辅助控制语句

C语言中,经常使用的辅助控制语句有break和continue两种。

break语句用在switch语句中,用于跳出switch语句体。同样,在循环结构中,也可用break语句终止本层循环体,提前结束本层循环。

continue语句的作用是跳过当前循环体后面的语句,即结束本次循环,进行下一次循环。

这两种辅助控制语句的使用示意如图3-15所示。

图3-15 break和continue使用示意图

(1)break语句。

break语句经常用于终止循环语句的运行。

例如:

以上程序段是已知8次的for循环,但实际只循环了4次。因为i=4时,if条件满足,执行break语句终止了循环。在循环体中用break语句,一般应该与if语句配合使用。

(2)continue语句。

continue语句只用在循环语句中。在循环体中,当程序流程执行到continue时,就结束本次循环,不再运行循环体中continue语句后面的其他语句,强行进行下一次循环,但并不退出循环。

例如:

在此程序段运行时,当变量i的值循环到4和8时,表达式“i%4==0”为真,执行contiune语句结束本次循环,使循环变量i的值增1并将程序流程转向for继续进行下一次循环。在这种情况下,语句“sum=sum+i;”不被执行。当循环变量i的值不等于4或8时,表达式“i%4==0”为假,系统直接执行语句“sum=sum+i;”后使循环变量i的值增1并将程序流程转向for继续进行下一次循环。

以上程序段运行时的输出结果如下:

退出for循环时:i=9,sum=24

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈