- 0
- 0
- 约2.67万字
- 约 137页
- 2026-03-03 发布于广东
- 举报
图3-4嵌套形式2返回图3-5嵌套形式3返回图3-6嵌套形式4返回图3-7嵌套形式5返回图3-8条件表达式的执行过程返回图3-9While语句返回图3-10do…While语句返回图3-11for语句返回图3-12break结构返回图3-13continue结构返回3.5循环结构程序设计说明:若continue语句出现在while或do…while语句中,则执行continue语句就是跳过循环体中continue语句后面的语句,直接转去判断下次循环控制条件是否满足;若continue语句出现在for语句中,则执行continue语句就是跳过循环体中continue语句后面的语句,转去执行for语句的表达式3。下一页返回上一页3.5循环结构程序设计3.continue语句和break语句的区别(1)continue语句只能出现在循环语句的循环体中;而break语句既可以出现在循环语句中,也可以出现在switch语句中。(2)continue语句只是结束本次循环,并开始下一次循环,而不是终止它所在的整个循环语句的执行;break语句则是终止它所在的整个循环语句的执行,转到循环语句后下一条语句去执行。例如,以下两个循环结构:下一页返回上一页3.5循环结构程序设计下一页返回上一页while(表达式1){if(表达式2)break;}while(表达式1){if(表达式2)continue;}它们的执行过程如图3-12和图3-13所示。3.5循环结构程序设计【例3-14】输出2位数中所有能同时被3和5整除的数。分析:2位数的范围是[10,99],能同时被3和5整除的数n应满足条件:n%3==0n%5==0;不能同时被3和5整除的数n应满足条件:n%3!=0||n%5!=0。#includestdio.hmain(){intn;for(n=10;n100;n++){if(n%3!=0||n%5!=0)continue;/*不能同时被3和5整除,结束本次循环*/下一页返回上一页3.5循环结构程序设计printf(%5d,n);}}运行结果如下:153045607590对2位数循环,即n=10,11,…,99。若n不能同时被3和5整除,应跳过输出语句转而考察下一个n。所以用continue语句结束本次循环。若n能同时被3和5整除,则输出n。若把程序中continue语句换成break语句,则执行程序将无任何输出。因为n=10时,即满足条件n%3!=0||n%5!=0,所以执行break语句,终止循环。下一页返回上一页3.5循环结构程序设计3.5.5无条件转向语句C语言中的goto语句可以转向同一函数内任意指定的位置执行,称为无条件转向语句。goto语句一般格式为:goto语句标号;语句标号:语句功能:改变程序执行的方向,使程序流程无条件地转去执行语句标号所标识的语句。下一页返回上一页3.5循环结构程序设计说明:(1)语句标号用标识符后跟冒号表示,放在某一语句行的前面,语句标号起标识语句的作用,与goto语句配合使用。如loop:i++;(2)goto语句通常与条件语句配合使用。可用来实现条件转移、构成循环、跳出循环体等功能。下一页返回上一页3.5循环结构程序设计【例3-15】用goto语句计算s=1+2+3+…+99+100。#includestdio.hmain(){intn,s=0;n=1;loop:s=s+n;n++;if(n=100)gotoloop;printf(1+2+3+…+100=%d\n,s);}下一页返回上一页3.5循环结构程序设计运行结果如下:1+2+3+…+100=5050注意:(1)goto语句与相应的语句标号必须处在同一个函数中,不允许跨两个函数。(2)由于goto语句转移的任意性,使得程序流程毫无规律,可读性较差,不符合结构化程序设计的操作完整性要求。在结构化程序设计中一般不主张使用goto语句,以免造成程序流程的混乱,使理解和调试程序都产生困难。但在某种场合下,使用goto语句可以提高效率。例如,在嵌套switch语句的内层switch语句中,利用break语句只能一层一层地退出,若采用goto语句,可以一次退出多层switch语句。下一页返回上一页3.5循环结构程序设计3.5.6
原创力文档

文档评论(0)