continue语句只结束本次循环,而非终止整个循环执行;
break语句结束整个循环过程,不再判断执行循环的条件是否成立。
例:输出以下4*5的矩阵

#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} 换行

输出结果将变成这样
在i=3且j=1的时候,break提前终止内循环(整个内循环都结束) 开始第四次外循环,i=4。
如果改为 if(i==3&&j==1)continue;
输出结果则变为

这里continue仅仅结束了当i=3,j=1的这一次循环,‘3’无法输出 而内循环并没有结束 继续进行i=3,j=2的这次循环 输出6.


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;
}
输出结果

把continue 改成break的结果
