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

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


文章目录

  • 循环结构中 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) 是等价

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/258598.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交换机与VLAN

交换机简介 交换机的作用 如今随着计算机速度不断提高&#xff0c;以及网络应用越来越多&#xff0c;局域网的负载变得越来越大了&#xff0c;交换机的使用也变得更有必要。交换机的作用主要有两个&#xff1a;一个是维护CAM&#xff08;Context Address Memory&#xff09;表…

WGCLOUD v3.5.0 新增支持监测交换机的接口状态UP DOWN

WGCLOUD v3.5.0开始 可以监测交换机或SNMP设备的接口状态了&#xff0c;直接上图

实时动作识别学习笔记

目录 yowo v2 yowof 判断是在干什么,不能获取细节信息 yowo v2 https://github.com/yjh0410/YOWOv2/blob/master/README_CN.md ModelClipmAPFPSweightYOWOv2-Nano1612.640ckptYOWOv2-Tiny

潮落云起:中国云桌面的产业变局

云桌面&#xff0c;又被称为桌面云、桌面虚拟化技术。这项技术的起源可以追溯到20世纪70年代&#xff0c;IBM通过一台计算机来实现多用户资源的桌面共享。在数十年的发展中&#xff0c;云桌面从技术实现方式到产品形态日趋丰富。 相比于传统PC数据单独存放、系统独立运维的分散…

医学图像数据处理流程以及遇到的问题

数据总目录&#xff1a; /home/bavon/datasets/wsi/hsil /home/bavon/datasets/wsi/lsil 1 规整文件命名以及xml拷贝 data_prepare.py 的 align_xml_svs 方法 if __name__ __main__: file_path "/home/bavon/datasets/wsi/lsil"# align_xml_svs(file_path) # b…

【android开发-22】android中音频和视频用法详解

1&#xff0c;播放音频 MediaPlayer是Android中用于播放音频和视频的类。它提供了许多方法来控制播放&#xff0c;例如播放、暂停、停止、释放等。下面是一个简单的MediaPlayer用法详解和参考代码例子。 首先&#xff0c;确保在布局文件中添加了一个MediaPlayer控件&#xff…

Python 小红书评论区采集 小红薯xhs精准用户获客

成品图 评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment/page?note_id笔记id&cursor光标 初次使用cursor为空,该接口为GET&#xff0c;需要x-s,x-t签名验证 子评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment/sub/page?note_id%s&r…

修改pip源

修改pip源 永久修改 PS C:\Users\Dell> pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/Writing to C:\Users\Dell\AppData\Roaming\pip\pip.ini临时修改 pip install -i(即--index-url简写) http://mirrors.aliyun.com/pypi/simple/ selenium…

Gerber文件使用详解

目录 概述 一、Gerber 格式 二、接线图示例 三、顶层丝印 四、顶级阻焊层 五、顶部助焊层 六、顶部&#xff08;或顶部铜&#xff09; 七、钻头 八、电路板概要 九、使用文本和字体进行 Gerber 导出 十、总结 概述 Gerber文件:它们是什么? PCB制造商如何使用它们? …

Swing程序设计(9)复选框,下拉框

文章目录 前言一、复选框二、下拉框总结 前言 该篇文章简单介绍了Java中Swing组件里的复选框组件、列表框组件、下拉框组件&#xff0c;这些在系统中都是常用的组件。 一、复选框 复选框&#xff08;JCheckBox&#xff09;在Swing组件中的使用也非常广泛&#xff0c;一个方形方…

年度工作总结怎么写?掌握这些年终总结万能公式,让你的报告出彩无比!

光阴似箭&#xff0c;日月如梭&#xff0c;时间总是不疾不徐地向前奔去&#xff0c;转眼就来到了2023年的最后一个月&#xff0c;12月一到&#xff0c;上班族和打工人又要开始忙活工作总结的事情~ 工作总结&#xff0c;不仅是一年工作的回顾&#xff0c;更是未来规划的起点。你…

k8s之镜像拉取时使用secret

k8s之secret使用 一、说明二、secret使用2.1 secret类型2.2 创建secret2.3 配置secret 一、说明 从公司搭建的网站镜像仓库&#xff0c;使用k8s部署服务时拉取镜像失败&#xff0c;显示未授权&#xff1a; 需要在拉取镜像时添加认证信息. 关于secret信息,参考: https://www.…