参考谭浩强《C语言程序设计》第五版P125程序
我们使用双层循环结构实现一个二维数组的输出,并在其中练习使用break与continue。
题目:输出4*5矩阵
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
#include <stdio.h>
int main(int argc, const char * argv[]) {
int i,j;
for(i=1;i<=4;i++){
for(j=1;j<=5;j++){
printf("%d ",i*j);
}
printf("\n");
}
return 0;
}
下面使用break将第三行后三位数字删除,正确代码如下:
#include<stdio.h>
int main (){
int i,j;
for(i=1;i<=4;i++){
for(j=1;j<=5;j++){
if(i==3&&j==2) break;
printf("%d ",i*j);
}
printf("\n");
}
return 0;
}
这里要注意两点
- 条件语句应该是i= =3&&j= =2,这是因为仅删除后三个数字,保留第一个数字3。
- 条件语句的出现位置应该在内层循环,而不是出现在外层。
错误示范
#include<stdio.h>
int main (){
int i,j;
for(i=1;i<=4;i++){
if(i==3) break;
for(j=1;j<=5;j++){
printf("%d ",i*j);
}
printf("\n");
}
return 0;
}
此时,break的作用就是直接跳出外层循环,结束运行。
下面使用continue演示删除第三行第二个元素6,
#include<stdio.h>
int main (){
int i,j;
for(i=1;i<=4;i++){
for(j=1;j<=5;j++){
if(i==3&&j==2){
printf(" ");
continue;
}
printf("%d ",i*j);
}
printf("\n");
}
return 0;
}
- 这里要注意加上if语句的大括号
总结
这个程序体现出的break与continue的区别:
break是提前终止整个循环。
continue是提前结束本次循环,但不结束整个循环。