如果我们想要让程序在中途跳出循环,可以用break语句来实现
#include<stdio.h>
int main()
{
int i,num;
_Bool flag=1;
printf("请输入一个整数:");
scanf("%d",&num);
for (i=2;i<=num/2;i++)
{
if(num%i==0)
{
flag=0;
break;
}
}
if(flag)
{
printf("%d是一个素数!\n",num);
}
else
{
printf("%d不是一个素数!\n",num);
}
printf("i=%d\n",i);
return 0;
}
如果写了break,输入10000,i的值为2,因为它不是素数,i=2是,由于break,直接跳出循环
没写i=5000
#include<stdio.h> int main() { int i,j; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(j==3) { break; } } } printf("i=%d,j=%d\n",i,j); return 0; }
结果
i=10,j=3
由于break执行,跳到第一个for
如果要j=3时结束整个循环体
#include<stdio.h> int main() { int i,j; for(i=0;i<10;i++) { for(j=0;j<10;j++) { if(j==3) { break; } } if(j==3) { break; } } printf("i=%d,j=%d\n",i,j); return 0; }
结果
i=0,j=3
continue
当满足某个条件时,跳过本轮循环后面内容,直接开始下一轮的循环
#include<stdio.h> int main() { int ch; while((ch=getchar())!=‘\n‘) { if(ch==‘C‘) { continue; } putchar(ch); } putchar(‘\n‘); return 0; }
相当于输入C,它会进行下一次循环,C就打不出来
continue和break都只能作用一次循环
if(i%2)
{
continue
}
意思是:i不能被2整除就执行continue