continue语句只结束本次循环,而非终止整个循环执行;
break语句结束整个循环过程,不再判断执行循环的条件是否成立。
例:输出以下4*5的矩阵
![](https://i-blog.csdnimg.cn/blog_migrate/6f6ade07314f332a18a25a61f46f215e.png)
#include <stdio.h>
int main()
{
int i,j,n=0;
for(i=1;i<=4;i++)//外循环:i从1到4 控制行数
for(j=1;j<=5;j++,n++)//内循环:j由1到5 控制列数
{
if(n%5==0) printf("\n");// {1} 特殊情况优先考虑
// if(i==3&&j==1)break;
printf("%d\t",i*j);
}
return 0;
}
//第一次外循环 i=1,j由1变到5 i*j为1,2,3,4,5
//第二次外循环 i=2 j由1变到5 i*j为2,4,6,8,10
//n的初值为0 每进行一次内循环 n的值加1 到n=5 时满足{1} 换行
if(n%5==0){
printf("\n");}
else{
printf("%d\t",i*j);} //内循环是不能这样写的 题目要求是一行输出5个数就换行
//这样写的话就是只换行不输出了 不是 是或不是的关系
如果在这里做一些改动 在第九行添加 if(i==3&&j==1)break;
#include <stdio.h>
int main()
{
int i,j,n=0;
for(i=1;i<=4;i++)//外循环:i从1到4 控制行数
for(j=1;j<=5;j++,n++)//内循环:j由1到5 控制列数
{
if(n%5==0) printf("\n");// {1} 特殊情况优先考虑
if(i==3&&j==1)break;
printf("%d\t",i*j);
}
return 0;
}
//第一次外循环 i=1,j由1变到5 i*j为1,2,3,4,5
//第二次外循环 i=2 j由1变到5 i*j为2,4,6,8,10
//n的初值为0 每进行一次内循环 n的值加1 到n=5 时满足{1} 换行
![](https://i-blog.csdnimg.cn/blog_migrate/ae8ff7be005fef3b8e0a436c52fd789f.png)
输出结果将变成这样
在i=3且j=1的时候,break提前终止内循环(整个内循环都结束) 开始第四次外循环,i=4。
如果改为 if(i==3&&j==1)continue;
输出结果则变为
![](https://i-blog.csdnimg.cn/blog_migrate/e30e8b7ea4e50335f35a0a5c0f58d299.png)
这里continue仅仅结束了当i=3,j=1的这一次循环,‘3’无法输出 而内循环并没有结束 继续进行i=3,j=2的这次循环 输出6.
![](https://i-blog.csdnimg.cn/blog_migrate/58cee9e6809ec3d19636153685fe068d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cc1f392d7620c9a76287d3eb3e12689a.png)
break结束整个循环 也不再判断m是否大于50
#include <stdio.h>
int main()
{
int i;
for(i=1;i<=5;i++){
if(i%2!=0)
printf("<");//i等于1,3,5时输出
else
continue;//i等于2,4时结束本次循环
printf(">");//是i等于1,3,5时输出的>号
}
printf("$");//i等于6时跳出上述循环
return 0;
}
输出结果
![](https://i-blog.csdnimg.cn/blog_migrate/9216cc881b93310211ada7dfed66cae0.png)
把continue 改成break的结果
![](https://i-blog.csdnimg.cn/blog_migrate/6527c94a9d9ddc86876e4dea72d320ed.png)