1、循环结构程序设计,5.1 用while语句实现循环,while语句用来实现“当型”循环结构。 一般形式如下:,循环体:反复执行的语句,while (表达式) 语句,例:用while语句构成循环求 1+2+100,i=100,真,sum=sum+i;,1,sum+=i;,i+;,2,3,3,6,100,5050,101,printf(“%d”,sum);,假,循环变量,累加器,例:用while语句构成循环求 1+2+100,5.2用dowhile语句实现循环,一般形式为:do语句while (表达式);执行过程:先执行循环体,然后判断循环条件是否成立。,;,例:用dowhile语句求1+2+10
2、0,循环体至少执行一次,5.3 用for语句实现循环,一般形式为: for(表达式1;表达式2;表达式3) 语句 执行过程:,表达式1; while (表达式2) 语句表达式3; ,5.3 用for语句实现循环,for语句最简单的应用形式:for(循环变量赋初值;循环条件;循环变量增值) 语句,例:用for语句求1+2+100,习题:,(1)有以下程序: main() int k=5,n=0; while (k0) switch (k) default: break;case 1: n+=k;case 2:case 3: n+=k;k-; printf(“%dn”,n); 程序运行后的输出结果
3、是_ a) 0 b) 4 c) 6 d) 7,d,习题:,(2)有如下程序 #include main() int s;while (s=getchar()!=n) switch (s-2)case 0: case 1: putchar(s+4);case 2: putchar(s+4);break;case 3: putchar(s+3);case 4: putchar(s+2); break;default: putchar(s+2); printf(“n”); 输入数据:2473,该程序输出结果是_a)446955 b)448966 c)668966 d)668977,d,习题:,(3)
4、执行语句: for(i=1;i+4;);后,变量i的值是_a)3 b)4 c)5 d)不定,c,习题:,(4)以下程序的功能是实现打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位正整数,其各位数字的立方和等于该数本身。例如153是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。,#include #include main() int i,j,k,n;for(n=100; 【1】 ;n+)k=n%10;j=(n/10)%10;i=n/100; if(n= 【2】 ) printf(“%dn”,n); ,i*i*i+j*j*j+k*k*k,n1000,习题:,编写一个程序,输
5、入132767之间的整数,把各位上的数字逆序输出,并且每两个数字之间用两个空格分隔。 例如,整数1234应该显示为:4 3 2 1。,作业:,求n!求Sn=a+aa+aaa+aaa之值,其中a是一个数字,n表示a的位数,例如: 2+22+222+2222+22222(此时n=5),n个a,5.4 循环的嵌套,一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。 3种循环(while循环、dowhile循环和for循环)可以相互嵌套。,例:求1!+2!+10!,main() ,for(i=1;i=n;i+)s=s*i; printf(“%d!=%ldn”,n,s);,int i,n; lon
6、g int s ;,for(n=1;n=10;n+),sum=sum+s;,s=1;,printf(“%ldn”,sum);,sum=0,例:输出以下图案 * * * * * * * * * * * * * * * *,空格个数,字符个数,2,3,0,1,5,4,7,6,n-i,n+i-1,n,作业:,在屏幕上输出如下图形:,*,5.5 break语句和continue语句,break语句 跳出它所在的switch结构,继续执行switch语句下面的一个语句。 从它所在的循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。,例:1+2+100,main() int i=1,sum=0;while(1)if(i100)break;sum+=i;i+;printf(“sum=%d“,sum);getch(); ,5.5 break语句和continue语句,continue语句 结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。,例:把100200之间的不能被3整除的数输出,main() int n;for(n=100; n=200; n+)if(n%3=0)continue;printf(“%d “, n);printf(“n”); ,