循环结构中 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.mzph.cn/news/207447.shtml

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

相关文章

选自《洛谷深入浅出进阶篇》——欧拉函数+欧拉定理+扩展欧拉定理

欧拉函数&#xff1a; 欧拉函数定义&#xff1a; 1~n中与n互质的数的个数。 比如 欧拉函数是积性函数&#xff1a;&#xff08;也就是&#xff09;当 n与m互质的时候&#xff1a; 由算术基本定理&#xff0c;我们可以设n&#xff0c;那么我们只要计算出的取值就能求出的取…

5组10个共50个音频可视化效果PR音乐视频制作模板

我们常常看到的图形跟着音乐跳动&#xff0c;非常有节奏感&#xff0c;那这个是怎么做到的呢&#xff1f;5组10个共50个音频可视化效果PR音乐视频制作模板满足你的制作需求。 PR音乐模板|10个音频可视化视频制作模板05 https://prmuban.com/36704.html 10个音频可视化视频制作…

设计师福利!免费实用的7款Figma插件,让你的工作事半功倍!

如今&#xff0c;Figma已经成为主流的原型和数字设计软件之一&#xff0c;许多UI设计师和设计团队开始选择使用Figma。随着Figma的快速更新和迭代&#xff0c;Figma插件库变得越来越丰富。如果使用得当&#xff0c;将有助于提高您的设计效率。本文将介绍7个工作中非常实用的Fig…

微软发布Orca2,“调教式”教会小规模大语言模型如何推理!

我们都知道在大多数情况下&#xff0c;语言模型的体量和其推理能力之间存在着正相关的关系&#xff1a;模型越大&#xff0c;其处理复杂任务的能力往往越强。 然而&#xff0c;这并不意味着小型模型就永远无法展现出色的推理性能。最近&#xff0c;奶茶发现了微软的Orca2公开了…

xxl-job详解

目录 1、xxl-job介绍1.1 xxl-job的原理1.1.1 执行器的注册和发现1.1.2 调度中心调用执行器 1.2 quartz和xxl-job对比 2、快速入门2.1 下载并启动2.2 在调度中心新增定时任务2.3 任务运行模式(BEAN、GLUE)2.4 xxl-job的总结 3、后端专属技术群 1、xxl-job介绍 ​ xxl-job是一个…

Python源码30:海龟画图turtle画紫色的小熊

turtle模块是一个Python的标准库之一&#xff0c;它提供了一个基于Turtle graphics的绘图库。Turtle graphics是一种流行的绘图方式&#xff0c;它通过控制一个小海龟在屏幕上移动来绘制图形。 turtle模块可以让您轻松地创建和控制海龟图形&#xff0c;从而帮助您学习Python编…

Qt12.8

使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是否为…

lv11 嵌入式开发 中断控制器14

目录 1 中断控制器 ​编辑 2 Exynos4412下的中断控制器 2.1 概述 2.2 特征 ​编辑 2.3 中断状态 2.4 中断类型 2.5 中断控制器GIC中断表 3 中断控制器寄存器详解 3.1 ICDDCR&#xff08;Interrupt Controller Distributor Control Register&#xff09; 3.2 ICDISER…

当你还在纠结用什么技术时,这位独立开发者用PHP和JavaScript实现财务自由了

大家好&#xff0c;我是风筝&#xff0c;微信搜「古时的风筝」&#xff0c;更多干货 一个个人产品卖了5400万&#xff0c;这大概就是最成功的独立开发者了吧 这位独立开发者是 levelsio&#xff0c;他的真名是 Pieter Levels&#xff0c;是一位荷兰的独立开发者。看看人家的工…

【Java基础系列】Cron表达式入门

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

优秀案例 | 元宇宙双语财经科技主播“舒望”主持首届粤港澳大湾区元宇宙国际传播论坛

12月6日&#xff0c;由南方财经全媒体集团指导、大湾区元宇宙国际传播实验室(GBA MIC Lab&#xff09;主办、南财国际传播中心和21世纪经济报道共同承办&#xff0c;以“多元共创开放共享”为主题的首届粤港澳大湾区元宇宙国际传播论坛在广州隆重开幕。 “立足湾区&#xff0c;…

一文详解Java单元测试Junit

文章目录 概述、Junit框架快速入门单元测试概述main方法测试的问题junit单元测试框架优点&#xff1a;使用步骤&#xff1a; 使用案例包结构 Junit框架的常见注解测试 概述、Junit框架快速入门 单元测试概述 就是针对最小的功能单元&#xff08;方法&#xff09;&#xff0c;…

ROS rosbag

在ROS中的rosbag是一个命令行工具&#xff0c;主要用于记录、回放和分析rostopic中的数据。它可以将指定rostopic中的数据记录到.bag后缀的数据包中&#xff0c;以便于进行离线分析和处理。 在ROS系统中&#xff0c;rosbag可以通过命令行工具或ROS节点来使用。 通过rosbag命令…

数字图像处理(实践篇)十九 漫水填充

目录 一 漫水填充算法--FloodFill 二 涉及的函数 三 实践 一 漫水填充算法--FloodFill FloodFill漫水填充算法就是选中与种子点相连接的区域&#xff0c;利用指定颜色进行区域颜色填充。可以通过设置连通方式或像素的范围控制填充的效果。通常是用来标记或者分离图像的一部…

进程地址空间

引入地址空间 静态变量和栈空间变量 静态变量默认是被初始化的 存放在初始化和为初始化空间中 static已经变成了全局变量 命令行参数和环境变量的增长方向 这里观察的是命令行参数和环境变量的地址 观察命令行和环境变量表的地址 进程地址空间 如果他们是同一块儿空间&am…

用AI来纠正错别字和修饰文字

▲ 搜索“大龙谈智能内容”关注GongZongHao▲ 在使用谷歌翻译或百度翻译将英语翻译成中文时&#xff0c;有些句子读起来不太流畅。我尝试使用AI来帮助我修改翻译后的中文&#xff0c;希望能让句子更符合中文习惯。 使用百度文心一言尝试一下。 文心一言的链接是这个&#x…

VUE3给table的head添加popover筛选、时间去除时分秒、字符串替换某字符

1. VUE3给table的head添加popover筛选 <el-tableref"processTableRef"class"process-table"row-key"secuId":data"pagingData"style"width: 100%"highlight-current-row:height"stockListHeight":default-exp…

谷歌Gemini刚发就惹质疑:测试标准有失偏颇,效果视频疑似剪辑

梦晨 克雷西 发自 凹非寺 量子位 | 公众号 QbitAI 谷歌憋了许久的大招&#xff0c;双子座Gemini大模型终于发布&#xff01;其中一图一视频最引人注目&#xff1a; 一图&#xff0c;MMLU多任务语言理解数据集测试&#xff0c;Gemini Ultra不光超越GPT-4&#xff0c;甚至超越了…

实战干货!基于ERNIE Bot SDK的数字诗人聊天开发教程

随着人工智能技术的不断迭代发展&#xff0c;数字人的开发与应用需求也与日俱增&#xff0c;并且随着大语言模型的发展&#xff0c;数字人也更智能&#xff0c;从最初的语音预制到现在的实时交流&#xff0c;目前已在很多场景都有广泛应用。 虚拟客服&#xff1a;数字人可以通…

【EMNLP 2023】基于知识迁移的跨语言机器阅读理解算法

近日&#xff0c;阿里云人工智能平台PAI与华南理工大学朱金辉教授团队、达摩院自然语言处理团队合作在自然语言处理顶级会议EMNLP2023上发表基于机器翻译增加的跨语言机器阅读理解算法X-STA。通过利用一个注意力机制的教师来将源语言的答案转移到目标语言的答案输出空间&#x…