5.4 不规则的循环及对循环的修整

5.4.1 循环语句中的break语句

switch语句中的break语句的作用是结束相应的switch语句,循环语句(while\do-while\for)中的break语句的作用是结束对应的循环语句。

C语言中的break语句只有这两种使用方法,其功能类似于goto语句,只是不需要标号而直接转到一个特殊的位置——所在的switch语句或循环语句的结束位置。

上一小节中的程序代码5-10中“判断大于2的奇数”部分是借助变量bsss值而结束循环的,这段代码也可以这样写:

程序代码5-11(片段)

5.4 不规则的循环及对循环的修整 - 图1

与前小节相比,这种写法代码执行到break语句时不再求表达式i += 2的值,直接结束for()循环语句。此外for语句()内的表达式2部分也写得更简洁了。

break语句只对循环语句或switch语句有结束作用。当存在嵌套情形时(无论是switch语句的嵌套、循环语句的嵌套或循环语句与switch语句的嵌套),break语句只结束所在的最内层的循环语句或switch语句,对其他层的循环语句或switch语句的执行没有影响。

从形式上来说,循环语句中的break语句往往是和if等语句一起使用的,这是break语句的功能决定的,因为如果不加以一定的条件限制,break语句就会无条件地结束循环,那又何必写循环语句呢。

5.4.2 continue语句

continue语句只应用于循环语句之中,含义是不执行continue语句后面的语句而直接进行下一轮循环,也就是说直接转到循环语句中的()内继续执行。对于for()语句来说,是转为求表达式3的值。

和break语句一样,continue语句也总是结合一定条件使用的。

例题:在一个游泳池的更衣箱上编号中没有4这个数字,已知,这个游泳池的更衣箱的最大编号为100,编号从1开始,且为连续编号,遇有4的号码跳过,问被编号了的更衣箱有多少只?

程序代码5-12

5.4 不规则的循环及对循环的修整 - 图2

运行结果:

5.4 不规则的循环及对循环的修整 - 图3