清华大学出版社 TSINGHUA UNIVERSITY PRESS 第六章 循环控制
第六章
清华大学出版社 TSINGHUA UNIVERSITY PRESS 本章要点 n循环的使用方法 不同形式的循环控制 goto while do while for continue break m循环的嵌套 常用算法
⚫ 本章要点 ◼ 循环的使用方法 ◼ 不同形式的循环控制 goto while do..while for continue break ◼循环的嵌套 ◼常用算法
清华大学出版社 TSINGHUA UNIVERSITY PRESS §6.1概述 开始 0→s.1→i 当某些操作需要 s+1→S 多次重复执行时使用 循环。循环中通常会 计+1→i 有循环变量,且循环 不成立变量要逐步改变使循 1>100 成立 环趋于结束 输出s的值 结束
§6.1 概述 开始 0s,1i s+is i+1i i >100 不成立 成立 输出 s 的值 结束 当某些 操作需要 多次重复执行时使用 循环。循环中通常会 有循环变量,且循环 变量要逐步改变使循 环趋于结束
大学出版社 §6.2goto语句实现循环 VERSITY PRESS ·无条件转向语句,形式为:goto语句标号 开始) #includesstdio. h> 0→s.1→1 void main() 00 p s+1→S Rint 1,sum sum=0:1=1: loop: sum=+1, 不成立 100 1++: ↓成立 ∠输出s的值 if(K<=100) goto loop printf("%od\n”,sum); 结束
§6.2 goto语句实现循环 • 无条件转向语句,形式为: goto 语句标号; 开始 0s,1i s+is i+1i i>100 不成立 成立 输出s 的值 结束 #include void main( ) {int i,sum; sum=0; i=1; loop: sum=sum+i; i++; if(i<=100) goto loop; printf(“%d\\n”,sum); } loop:
清华大学出版社 TSINGHUA UNIVERSITY PRESS §6.3 while语句实现循环 当型”循环: while(表达式)循环体 #include <stdio. h) sum=0 loid maino while(<=100) int 1, sum sum=0:i=1 Sum+i→sum while (i<=100) i+1→ Print( sum) sum=sum+1 1++ printf(“%dⅦn”,sum)
§6.3 while语句实现循环 “当型”循环: while(表达式) 循环体 #include void main() { int i,sum; sum=0;i=1; while (i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); } sum=0 i=1 while(i<=100) sum+i→sum i+1→i Print(sum)
清华大学出版社 TSINGHUA UNIVERSITY PRESS 补充 (1)比较if(<=100){Sum=um+i++} while(i<=100)(sum=sum+i;i++ (2)分析 while(=100){um=sum+ii++} (3)注意循环体多条语句时用花括号
补充: (1)比较if(i<=100){ sum=sum+i;i++;} 与while(i<=100){sum=sum+i;i++} (2)分析while(i=100){sum=sum+i;i++}; (3)注意循环体多条语句时用花括号
清华大学出版社 TSINGHUA UNIVERSITY PRESS §6.4用do- while语句实现循环 直到型循环:do循环体 while(表达式) 0→s.1→1 void main() s+1→S Int 1, sum: i+1→i sum=0:i=1: 直到讠100 do 输出s的值 sum=sum+ P117例64 1++; 两者可相互转化 }whil(i<=100); 提倡用当型循环 printf("%d\n”,sum
§6.4 用do-while语句实现循环 直到型循环:do循环体while(表达式) void main( ) { int i,sum; sum=0; i=1; do { sum=sum+i; i++; }while (i100 输出s 的值 P117例6.4 两者可相互转化, 提倡用当型循环
清华大学出版社 TSINGHUA UNIVERSITY PRESS §6.5用for语句实现循环 将循环变量的初始化、循环条件和循环变量的改变集中 到一起,如i=1 While(i<=100)5um=sum+++;} 形式:for(表达式1;表达式2;表达式3)循环体 等同于 注意for语句 表达式1 的N-S图画法 Whle表达式2) sum=0, p=l for(n=1n<=20;n+) 循环体 p=p*n 表达式3; sum-sumtp 输出sum
§ 6.5 用for 语句实现循环 将循环变量的初始化、循环条件和循环变量的改变集中 到一起,如i=1;while(i<=100){sum=sum+i;i++;} 形式:for(表达式1;表达式2;表达式3)循环体’ 等同于 表达式1; while(表达式2) { 循环体’; 表达式3; } 注意for语句 的N-S图画法 sum=0,p=1 for(n=1;n<=20;n++) 输出sum p=p*n sum=sum+p
说明: (1-5)for语句中三表达式均可省略,但分号不能省略 for( K<=100; i++)sum=sum+i for(i=l; i++)sum=sum+i for(il; K=100, )sum=sum+1; 1++; 1 for(; K<=100, sum=sum+i; 1++; for(c=getchar if(c=== n)break; else putchar(c) (6-7)各表达式可扩充。如 for(sum=0, i =l; K<=100; i++)sum=sum+ for(i=0,j=100;j<=j++小)k=计+j; for((c=getchar()=n'; putchar(c))
说明: (1-5)for语句中三表达式均可省略,但分号不能省略 for(;i<=100;i++) sum=sum+i; for(i=1; ;i++) sum=sum+i; for(i=1;i<=100;) {sum=sum+i;i++;} for(;i<=100;) {sum=sum+i; i++;} for(;;){c=getchar();if(c==‘\n’)break;else putchar(c);} (6-7) 各表达式可扩充。如 for(sum=0,i=1;i<=100;i++) sum=sum+i; for(i=0,j=100;i<=j;i++,j--) k=i+j; for(;(c=getchar())!=‘\n’; putchar(c));
清华大学出版社 TSINGHUA UNIVERSITY PRESS 小结及举例: 种循环的比较 例6.6用π/4≈1-1/3+1/5-1/7+.公式求T的近 似值,直到某一项的绝对值小于0.000001为 求出通项,赋予变 i-l, term=l, sign=1 量一定含义,循环求 sum=l 和。注意循环变量初 值和边界情况分析, while(fabs(term)>1e-6 编程前考虑变量类型 1=1+1 与整除问题 sign=Sign* (1 tm=sg(2i1)注意循环变量步长 sum=sum+term 与答案的不同 输出pi=4*sum
小结及举例: 例6.6 用π/4≈1-1/3+1/5-1/7+…公式求π的近 似值,直到某一项的绝对值小于0.000001为 止。 三种循环的比较 i=1,term=1,sign=1 sum=1 while(fabs(term)>1e-6) i=i+1 sign=sign*(-1) 输出pi=4*sum term=sign/(2i-1) sum=sum+term 注意循环变量步长 与答案的不同 求出通项,赋予变 量一定含义,循环求 和。注意循环变量初 值和边界情况分析, 编程前考虑变量类型 与整除问题