5.4 不规则的循环及对循环的修整
5.4.1 循环语句中的break语句
switch语句中的break语句的作用是结束相应的switch语句,循环语句(while\do-while\for)中的break语句的作用是结束对应的循环语句。
C语言中的break语句只有这两种使用方法,其功能类似于goto语句,只是不需要标号而直接转到一个特殊的位置——所在的switch语句或循环语句的结束位置。
上一小节中的程序代码5-10中“判断大于2的奇数”部分是借助变量bsss值而结束循环的,这段代码也可以这样写:
程序代码5-11(片段)
与前小节相比,这种写法代码执行到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
运行结果: