continue和break
加入嵌入式技术QQ群:398294860,免费获取嵌入式技术文档,嵌入式最新学习路线指南,更多嵌入式教程,访问宅学部落淘宝店:https://wanglitao.taobao.com/
在一次循环过程中,虽然循环条件为真,但有时我们想要结束循环,这时候break和continue就用上了战场。以下面的程序为例:
//break.c
#include <stdio.h>
int main(void)
{
char c;
while(1)
{
printf("zhaixue.cc\n");
printf("input choice(y/n): ");
scanf("%c", &c);
if(c == 'n')
break;
getchar();
}
return 0;
}
在上面的程序中,我们使用一个死循环while(1)来无限次打印字符串“zhaixue.cc”,但是在while循环体内,每执行完一次循环,我们都需要用户输入一个选择:y或n,来决定继续循环还是结束循环。C语言提供了关键字break用来结束当前的循环,调到循环体外的代码继续执行。
编译运行上面的程序,程序的运行结果为:
root@ubuntu:/home/code# gcc break.c
root@ubuntu:/home/code# ./a.out
zhaixue.cc
input choice(y/n): y
zhaixue.cc
input choice(y/n): y
zhaixue.cc
input choice(y/n): n
break用来跳出当前的循环,跳到循环体外的代码执行。如果我们只想结束本次循环,然后继续下一次循环,此时可以使用continue来实现。
//continue.c
#include <stdio.h>
int main(void)
{
char c;
int count = 0;
while(1)
{
count++;
printf("input choice(y/n): ");
scanf("%c", &c);
getchar();
if(c == 'n')
continue;
printf("zhaixue.cc: %d\n", count);
}
return 0;
}
在上面的程序中,为了演示continue的执行过程,我们将printf函数的打印放到了循环体的最后,并引入一个变量count,用来记录循环体的循环次数。在程序运行过程中,每次执行循环体,都会提示用户,是否继续本次循环(输入y),或者结束本次循环(n)。当用户输入y时,循环体正常执行;当用户输入n时,continue会结束本次循环,并接着进行执行下一次循环。
程序的运行结果如下:
root@ubuntu:/home/code# gcc loop.c
root@ubuntu:/home/code# ./a.out
input choice(y/n): y
zhaixue.cc: 1
input choice(y/n): y
zhaixue.cc: 2
input choice(y/n): n
input choice(y/n): n
input choice(y/n): y
zhaixue.cc: 5
input choice(y/n):
通过程序的运行结果我们可以看到,当前的程序一共循环了5次,但是只打印了3次字符串,这是因为我们输入了2次n,continue结束了本次循环,没有执行下面的printf函数。
专门为嵌入式设计的C语言进阶视频教程:《C语言嵌入式Linux高级编程》,一共9期,涉及计算机体系结构、ARM汇编与反汇编、程序的编译链接原理、堆栈内存、Linux内核的面向对象编程思想、多任务编程、C语言的模块化编程等专题,具体课程详情可点击淘宝:C语言嵌入式Linux高级编程