-- 作者:admin
-- 发布时间:2015/10/27 13:31:30
-- [推荐]第五课代码讲义:循环语句之二
continue:表示的含义是退出当前循环进入下一轮循环
main( ) { int i=0; while(i<100) { i++; if(i%2==0) continue; printf("%d\\t",i); } }
continue语句会导致程序可读性下降,通常建议不要使用,除非这种做法极有效率和必要。一般来说,使用其他的方式也能解决问题
break语句:表示的含义是退出循环语句,如输出1到100之间所有的数 main( ) { int i=1; while(1) { printf("%d\\t",i); i++; if(i>100) break; } }
通常break语句也会导致程序可读性下降,所以建议不要使用,使用其他的方式一般也能解决问题,除非这种做法极有效率和必要。
练习1:打印素数 版本1 main( ) { int i,j,number,flag; scanf("%d",&number); for(i=3; i<=number; i++) { flag=1; for(j=2; j<i; j++) { if(i%j==0) flag=0; } if(flag) printf("%d\\t",i); } }
版本2 #include <math.h> main( ) { int i,j,number,flag; scanf("%d",&number); for(i=3; i<=number; i++) { flag=1; for(j=2; j<=sqrt(i); j++) { if(i%j==0) flag=0; } if(flag) printf("%d\\t",i); } }
版本3 #include <math.h> main( ) { int i,j,number,flag; scanf("%d",&number); for(i=3; i<=number; i+=2) { flag=1; for(j=2; j<=sqrt(i); j++) { if(i%j==0) flag=0; } if(flag) printf("%d\\t",i); } }
版本4 #include <math.h> main( ) { int i,j,number,flag; scanf("%d",&number); for(i=3; i<=number; i+=2) { flag=1; for(j=2; j<=sqrt(i); j++) { if(i%j==0) { flag=0; break; } } if(flag) printf("%d\\t",i); } }
练习2:打印星号三角形 main( ) { int i,j,line; scanf("%d",&line); for(i=0; i<line; i++) { for(j=0; j<line-1-i; j++) printf(" "); for(j=0; j<(i+1)*2-1; j++) printf("*"); printf("\\n"); } }
练习3:打印菱形 #include <math.h>
main( ) { int i,j,line; scanf("%d",&line); for(i=-line+1; i<line; i++) { for(j=0; j<abs(i); j++) printf(" "); for(j=0; j<2*abs(line-abs(i))-1; j++) printf("*"); printf("\\n"); } }
练习4:输入0为止,统计平均值 main( ) { int i; float number=-1,sum=0,count=0; while(number!=0) { scanf("%f",&number); if(number==0) break; sum=sum+number; count++; } printf("%f",sum/count); }
|