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);
}