continue语句和break语句都是用来终止当前循环,和break语句不同的是,continue语句终止当前循环后又回到循环体的开头准备再次执行循环体。对于while和do/while, continue之后测试控制表达式,如果值为真则继续执行下一次循环;对于for循环, continue之后首先计算控制表达式3,然后测试控制表达式2,如果值为真则继续执行下一次循环。下面的代码打印1到100之间的素数:
#include <stdio.h>
int is_prime(int n)
{
int i;
for (i = 2; i < n; i++)
{
if (n % i == 0)
break; //当满足条件,则结束当前循环,否则继续循环,不执行循环外的语句
}
if (i == n)
return 1;
else
return 0;
}
int main(void)
{
int i;
for (i = 2; i <= 100; i++) {
if (!is_prime(i))
continue; //continue直接跳出当前循环(即不执行下面的printf语句,然后回到循环开始计算控制语句3,测试控制表达式2)
// break;
printf("%d\n", i);
}
return 0;
}