while循环与中断语句break、continue、return以及goto的使用
原创:https://blog.csdn.net/liebecl/article/details/76167106
由于程序的复杂性需要 我们在一个程序中建立许许多多的嵌套语句进行程序的搭建 这就导致了如何跳出循环成为了一个重要的环节
现在就来总结下while与break、continue、return以及goto一起使用的案例
注意
1.break语句用于do-while、for、while循环语句中时,可使程序终止循环
2.break语句对if-else的条件语句不起作用
3.在多层循环中,一个break语句只向外跳一层
4.在 C语言 的 switch(开关语句)中,break 语句还可用来在执行完一个 case(分支)后立即跳出当前 switch 结构
(1)while与break:直接跳出整个循环体
break语句的使用场合主要是switch语句和循环结构 在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构
while(flag<5)
{
flag++;
if(flag == 4)
{
break;
}
printf("flag = %d.\n",flag)
}
当flag=4,直接跳出while循环
(2)while与continue:直接跳出本次循环,继续执行下次循环
continue语句是这5种结束循环的方式中最特殊的,因为它并没有真的退出循环,而是只结束本次循环体的执行,所以在使用continue的时候要注意这一点
while(flag<5)
{
flag++;
if(flag == 4)
{
continue;
}
printf("flag = %d.\n",flag);
}
当flag=4,直接跳出本次循环,接着判断while循环的条件
(3)while与return:直接跳出整个函数
如果在程序中遇到return语句,那么代码就退出该函数的执行,返回到函数的调用处,如果是main()函数,那么结束整个程序的运行
void func(void)
{
while(flag<5)
{
if(flag == 4)
{
flag++;
return;
}
printf("flag = %d.\n",flag);
}
}
当flag=4,直接跳出循环和函数func()
(4)while和goto:直接goto到某个地方继续执行
void func(void)
{
while(flag<5)
{
if(flag == 4)
{
goto EXIT;
}
printf("flag = %d.\n",flag);
}
EXIT:return;//EXIT:可以指向任何执行语句 例如EXIT:cout<<"程序结束";
}
goto到EXIT的地方继续执行函数
exit()函数
exit()函数与return语句的最大区别在于,调用exit()函数将会结束当前进程,同时删除子进程所占用的内存空间,把返回信息传给父进程。当exit()中的参数为0时,表示正常退出,其他返回值表示非正常退出,执行exit()函数意味着进程结束;而return仅表示调用堆栈的返回,其作用是返回函数值,并且退出当前执行的函数体,返回到函数的调用处,在main()函数中, return n和exit(n)是等价的
exit函数和return的主要区别
1.exit(); 是整个程序的结束 return();是某个函数的结束,并返回结果
2.exit 是一个函数 return返回函数值,是关键字
3.exit是系统调用级别的,它表示了一个进程的结束 return是语言级别的,它表示了调用堆栈的返回
4.exit是操作系统提供的(或者函数库中给出的) return是C语言提供的
非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的
void func(void)
{
while (flag < 5)
{
flag++;
if (flag == 4)
{
exit(1);
}
printf("flag = %d.\n", flag);
}
}
当flag=4,跳出循环并结束程序进程 返回值为非正常值
源自-C++类和对象项目