控制结构与语句2.ppt
《控制结构与语句2.ppt》由会员分享,可在线阅读,更多相关《控制结构与语句2.ppt(49页珍藏版)》请在三一文库上搜索。
1、第4章 控制结构与语句,第4章 控制结构与语句,4.1 算法与程序 4.2 结构化程序设计 4.3 顺序结构 4.4 选择结构 4.5 循环结构 4.6 多重循环结构 4.7 实际应用举例,4.5 循环结构,循环结构程序设计 四种循环语句 常用算法 枚举法(穷举法) 归纳法(递推法),循环是在循环条件为真时计算机反复执行的一组 指令(循环体)。 循环控制通常有两种方式: 计数控制 用于事先能够准确知道循环次数时 用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。 标记控制 用于事先不知道准确的循环次数时 由专门
2、的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。,在C语言中可用以下语句构成循环: if goto while do while for 其中if goto是通过编程技巧(if语句和goto语句组合)构成循环功能。而且goto语句将影响程序流程的模块化,使程序可读性变差,所以结构化程序设计主张限制goto语句的使用。 其他三种语句是C语言提供的循环结构专用语句。,循环结构两大要素: 循环条件 p 结束循环的条件表达式 循环体 A 循环执行的语句或语句组 设置循环条件要特别注意确定: 循环变量的初值 循环变量的终值 循环变量的变化规律,名词解
3、释 无限循环 死循环,名词解释 空循环,4.5.1 if goto语句循环结构 格式:goto 标号; 例1:计算1+2+3+10000 的值,goto 语句为无条件转向语句,它的一般形式为: 语句标号: 语句; goto 语句标号;,【例一】 main() int n=0,sum=0; loop: sum+=n; +n; if (n=10000) goto loop; printf(“sum = %dn”,sum); ,【例二】 main() int n=0,sum=0; loop: if (n=10000) goto end; sum+=n; +n; goto loop; end: pri
4、ntf(“sum = %dn”,sum); ,直到型,当 型,4.5.2 while语句循环结构,一般形式 while (表达式) 循环体; 用于构成当型循环:先判断后执行/条件为真继续循环,直到条件为假时结束循环。,注意,若循环体包含一条以上语句,应以复合语句形式出现。 循环前,必须给循环控制变量赋初值。 循环体中,必须有改变循环控制变量值的语句(使循环趋向结束的语句)。 循环体可以为空。如 while(c=getchar()!=A); 等价于 c=getchar(); while(c!=A)c=getchar(); 从键盘输入字符,直到输入A为止。,例2:输入100个数,求它们的和并输出。
5、,#include void main() float x, sum=0; int i=0; printf(“please input data x:n”); while (i100) /当循环体是复合语句时,必须用花括号括起 scanf(“%f”, ,4.5.3 dowhile语句循环结构 P108,一般形式 do 循环语句(组) while (条件表达式); 用于构成直到型循环:先执行后判断/条件为真继续循环,直到条件为假时结束循环。 【注意】条件表达式或循环体内同样应有改变条件使循环结束的语句,否则可能陷入“死循环”。,不可省略 切记切记!,例3:输入100个数,求它们的和并输出。,#i
6、nclude void main() float x, sum=0; int i=0; printf(“please input data x:n”); do /直到循环体是复合语句时,必须用花括号括起 scanf(“%f”, ,main() int num,c; printf(“请输入一个整数:“); scanf(“%d”, ,例4:从键盘输入一个整数12456,分析以下程序运行结果。,/*取得num的个位数*/,/*输出num的个位数*/,/*直到num/10为0*/,结果: 65421 将各位数字反序显示出来,/*去掉num的个位数*/,4.5.4 for语句循环结构 P110,一般形式
7、 for (表达式1;条件表达式;表达式3) 循环语句(组); 执行步骤: 1、求表达式1: 整个循环中只执行1次,常用来对循环变量设置初值。 2、求表达式2: 其值为真(非0)时继续执行循环语句(组),否则结束循环, 转到for的后续语句执行。 3、求表达式3: 然后转到第2步继续执行; 常用于循环变量值的更新(属于循环体的一部分,每次循环语句组执行完后执行一次),例5:求i =1+2+3+4+99+100 (i=1100),#include void main() int i , sum=0; for (i=1;i=100;i+) sum=sum+i; printf(“sum=%dn”,s
8、um); ,例6:输入10个数,求最大数输出,#include void main() double x,max; int i; printf(“input data:n”); scanf(“%lf”, ,for循环的特殊形式,for循环的特殊形式说明,1、表达式1省略,但是其后的“;”不能省略 i=1; for ( ; i = 100; i+) sum += i; 2、表达式2省略。(即不判断循环条件,无限循环) “;”不能省略 for (i = 1; ; i+) sum += i; 3、表达式3省略。(应保证循环能正常结束) for (i = 1; i = 100; ) sum += i;
9、 i+; ,4、表达式1和表达式2省略(无限循环) for ( ; ; i+) sum += i; 5、表达式1和表达式3省略(等同于while语句) for ( ; i = 100; ) sum += i; i+ 相当于: while (i = 100) sum += i; i+ 6、表达式2和表达式3省略(无限循环) for ( i=1; ; ),7、表达式1和表达式3可以是逗号表达式。 for (i = 0, j = 100; i = j; i+, j-) k = i + j; 8、每一个表达式也可以是数值表达式或字符表达式。 for (i = 0; (c = getchar () !
10、= n; i += c) 9、表达式1可以设置成循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式。如: for ( sum=0; i=100; i+ ) sum=sum+i;,其他循环控制结构,break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可!,#include void main( ) int a,y; a=10,y=0; do a+=2;y+=a; if (
11、y50) break; while (a=14); printf(“a=%d,y=%dn“,a,y); ,结果:a=16,y=60,变量跟踪 a y 10 0 12 12 14+2 16+12=28 14+2 16+28=44 14+2 16+44=60,变量跟踪 分析法,其他循环控制结构,break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可!,求以下程序段执行后x和i的值。
12、int i,x; for ( i=1,x=1;i=10) break; if (x%2=1) x+=5; continue; x-=3; ,结果:x的值为10,i的值为6,变量跟踪 i x 1 16 2 63 3 38 4 85 5 510,其他循环控制结构,break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可!,#include void main() int i=1; wh
13、ile (i=15) if (+i%3!=2) continue; else printf(“%d “,i); printf(“n“); ,结果:2 5 8 11 14,变量跟踪 i +i%3 输出i 12 2 2 23 0 34 1 45 2 5 56 0 ,其他循环控制结构,break 结束循环 在switch中退出switch结构; 在循环中结束循环。 continue 结束本次循环 循环“短路” (跳过循环体后面的语句,开始下一轮循环 )。 goto 跳转 跳到循环体外指定标号处。 【注意】 goto 语句只能从循环内向外跳转 ,反之不可!,#include void main() i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 结构 语句
链接地址:https://www.31doc.com/p-2594064.html