《五章节循环结构C程序设计.ppt》由会员分享,可在线阅读,更多相关《五章节循环结构C程序设计.ppt(202页珍藏版)》请在三一文库上搜索。
1、第五章 循环结构的C程序设计,C语言中可用while语句、do-while语句和for语句来实现。本章应掌握各种循环语句的使用,循环的嵌套及break和continue语句,并对goto 语句有所了解。,while循环语句 do-while循环语句 for循环语句,多重循环 break语句和continue语句 goto语句和标号,while循环语句,while循环的一般形式如下:,while(表达式) 语句 例 while(i5) i+;,表达式:关系表达式(如i=100)或逻辑表达式(如xy),也可以是数值表达式或字符表达式。,流程图,使用while语句时,应注意几个问题。,示例1,示例2
2、,while循环语句(续),使用while语句时,应注意以下几个问题:,(1)while语句的特点是“先判断,后执行”。 (2)循环体由多个语句组成时,必须用 号括起来,使其构成一复合语句。如下例:,void main() int i, sum; i=5; sum=0; while (i0) sum=sum+i; i- ; ,(3)循环必须有结束条件,以免“死循环”。,while循环语句示例,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); sc
3、anf(“%d“, ,运行:,i,sum,1,0,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n:,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n: 3,例1:利用while语
4、句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n: 3 12,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,12,Input n: 3 12,例1:利
5、用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,12,Input n: 3 12,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,12,Input n: 3
6、 12 34,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,46,Input n: 3 12 34,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3
7、,46,Input n: 3 12 34,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n: 3 12 34,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“
8、, ,运行:,i,sum,3,46,Input n: 3 12 34,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n: 3 12 34 2,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input
9、n:“); scanf(“%d“, ,运行:,i,sum,3,48,Input n: 3 12 34 2,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum
10、=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n
11、, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2 sum is : 48,例1:利用while语句实现:从键盘输入n(n0)个数,求其之和。,while循环语句示例,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2 sum is : 48,例1:利用while语句实现:从键盘输入n(n0)个数,
12、求其之和。,while循环语句示例,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Typ
13、e in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=
14、getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nS
15、entence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len);
16、,运行:,Type in a sentence, then press,I,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I,例
17、2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,whil
18、e循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I am a boy .,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void ma
19、in() char ch; int len=0; puts(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I am a boy .,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; put
20、s(“Type in a sentence,then pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I am a boy .,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,then p
21、ressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I am a boy .,Sentence is 11 characters long.,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,while循环语句示例,程序:,#include void main() char ch; int len=0; puts(“Type in a sentence,th
22、en pressn“); while (ch=getch()!=r) putchar(ch); len+; printf(“nSentence is %d characters long.n“,len); ,运行:,Type in a sentence, then press,I am a boy .,Sentence is 11 characters long.,例2:从键盘连续输入字符,直到输入“回车”符为止,统计输入的字符个数。,do-while循环语句,do-while循环的一般形式如下:,do 语句 while(表达式);,例:,do i+; while(i10);,使用do-whi
23、le语句应注意几个问题。,流程图,示例,do-while循环语句(续),使用do-while语句应注意如下几个问题:,do-while语句的特点是“先执行,后判断”。 若循环体部分由多个语句组成时,必须用 括起来,使其形成复合语句。例如:,do sum+=i ; i- ; while (i0);,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,do-while循环
24、语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n:,do-while循环语
25、句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n: 3,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n: 3
26、,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n: 3 12,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum
27、,1,12,Input n: 3 12,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,12,Input n: 3 12,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); sc
28、anf(“%d“, ,运行:,i,sum,2,12,Input n: 3 12,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,12,Input n: 3 12 34,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0;
29、 printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,46,Input n: 3 12 34,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n: 3 12 34,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int
30、 i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n: 3 12 34,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n: 3 12 34 2,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)
31、个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,48,Input n: 3 12 34 2,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2,do-while循环语句示
32、例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,In
33、put n: 3 12 34 2 sum is : 48,do-while循环语句示例,例3:利用do-while语句实现:从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; i=1; sum=0; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n: 3 12 34 2 sum is : 48,for循环语句的一般形式如下:,for(表达式1;表达式2;表达式3) 语句,例:for(i=0; i10; i+) printf(“%d“,i);,for循环语句(一),for循环语句(
34、二),for语句的功能可用while语句描述如下:,for语句最简单的应用形式,也是最容易理解的形式:,表达式1; while(表达式2) 语句; 表达式3; ,for(循环变量赋初值;循环条件;循环变量增值) 语句 例如:for(i=1; i=50; i+) sum=sum+i;,示例1,示例2,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)
35、个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,0,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,0,Input n :,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(
36、“Input n:“); scanf(“%d“, ,运行:,i,sum,0,Input n : 3,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,0,Input n : 3,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,su
37、m,1,0,Input n : 3 12,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,12,Input n : 3 12,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,1,12,Input n : 3 12,for
38、循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,12,Input n : 3 12,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,12,Input n : 3 12 34,for循环语句示例,例4:利用for语句实现从键
39、盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,46,Input n : 3 12 34,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,2,46,Input n : 3 12 34,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程
40、序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n : 3 12 34,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,46,Input n : 3 12 34 2,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() i
41、nt i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,48,Input n : 3 12 34 2,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,3,48,Input n : 3 12 34 2,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, su
42、m; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n : 3 12 34 2,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum; printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n : 3 12 34 2 sum is : 48,for循环语句示例,例4:利用for语句实现从键盘输入n(n0)个数,求其之和。,程序:,void main() int i, n, k, sum;
43、 printf(“Input n:“); scanf(“%d“, ,运行:,i,sum,4,48,Input n : 3 12 34 2 sum is : 48,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if
44、 (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,1,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(
45、“sum=%dn“,sum); ,运行:,i,sum,1,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,2,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i
46、,sum,2,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,3,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,3,0,for循环语句示例,例5:
47、计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,7,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30; i+) if (i%7=0) sum+=i; printf(“sum=%dn“,sum); ,运行:,i,sum,7,0,for循环语句示例,例5:计算1至30中是7的倍数的数值之和。,程序:,void main() int i, sum=0; for (i=1; i=30;