循环结构中 break、continue、return 和exit() 的区别

循环结构中 break、continue、return 和exit() 的区别




说明:本文内容参考牟海军 著《C语言进阶: 重点、难点与疑点解析》,鸣谢

一、break语句

break 主要结合 switch 语句和循环结构,主要有以下特点:
(1) 在循环结构内部执行了 break 语句,就退出该层循环, 执行下一条语句。
(2) 在多重嵌套循环中执行 break 语句,只退出其所在循环层, 外层循环不受影响,继续循环执行。
(3) 如循环结构里有 switch 语句, switch 语句中执行 break 语句时, 仅退出 switch 语句,不会退出外面的循环结构。
在这里插入图片描述

二、continue语句

continue 语句较特殊的, 在循环结构主要有以下特点:
(1)它不会退出循环, 而是只结束本次循环体的执行, 所以使用 continue 时要注意。
(2) for 循环中, 首先执行表达式 1( 注意表达式 1 在整个循环中仅执行一次), 接着执行表达式 2, 如果满足条件, 那么执行循环体, 如果在循环体中执行了 continue 语句, 那么就跳转到表达式 3 处执行, 接下进行下一次循环, 执行表达式 2, 看是否满足条件 ;
(3)在 while循环执行了continue 语句, 就直接跳转到表达式处, 开始下一次的循环判断 ;
(4)在 do while 循环体执行 continue 语句, 就跳转到表达式处进行下一次的循环判断,
在这里插入图片描述

三、return 语句

return 语句主要用在函数或循环结构中,主要有以下特点:
(1)在程序中遇到 return 语句, 那么代码就立刻退出该函数的执行,不会执行return下面的语句, 然后返回到函数的调用处,
(2)如果是 main() 函数, 那么结束整个程序的运行。
(3)如果在函数内部使用while或do while循环语句,在循环语句内部使用return语句,也会退出函数,
在这里插入图片描述

四、exit() 函数

exit()实质为一个函数,表示执行返回,与 return 语句既有联系又有区别;
区别:
(1)执行 exit() 函数意味着进程结束。
(2)调用 exit() 函数将会结束当前进程, 同时删除子进程所占用的内存空间, 把返回信息传给父程。 (3)当 exit() 中的参数为 0 时, 表示正常退出, 其他返回值表示非正常退出, 而 return 仅表示调用堆栈的返回, 其作用是返回函数值, 并且退出当前执行的函数体, 返回到函数的调用处,
(3)总结起来就是无论在函数中还是循环中调用exit()函数,都是终止程序运行

看个例子:

#include <stdio.h>
#include <stdlib.h>

int func()
{
   int n = 1;
   printf("exit 退出函数\n");
   while(1)
   {
     if(9==n)
     {
        exit(n);
     }
     n++;
   }
 
 	return 0;
}

int main(void)
{
         int ret;
         printf(" *********\n");
         ret = func();
         printf("func 函数返回值 ret = %d\n",ret);
         return 0;
}
                                         

执行结果:
∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ *********
exit 退出函数

结论:函数退出之后没有执行main函数最后一条语句,符合上述特性

联系:
(1) 在main() 函数中, return n 和 exit(n) 是等价

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值