当前位置: 首页 > news >正文

break,return 和continue

本篇文章,主要是给大家讲清楚这三个常用的循环关键字

目录

break


break:提前终止循环或switch

作用:立即终止它所在的最内层循环(如forwhile)或switch语句的执行,并跳出该结构。

相信在看我这篇文章的同学们在日常写代码时,最常用到break的便是switch语句,它被添加在每个case分支的末尾,当一个case分支结束时,便结束整个switch语句。

接下来你可以运行一下这行代码

#include <stdio.h> int main() { int a=1; switch (a) { case 1: a++;break; a++; default :break; } printf("a=%d\n",a); return 0; }

结果是显而易见的,a=2;因为break将整个switch语句的后面切断了。

这便是break的作用,谁占有着break,谁就会被分割。是的,这是个向往自由的关键字。

#include <stdio.h> int main() { int i = 0; while (i < 3) { for (int j = 0; j < 5; j++) { printf("i=%d, j=%d\n", i, j); if (j == 2) break; } i++; } return 0; }

现在你可以用你的大脑好好想一下,这段代码的运行结果是什么样的呢?

因为break的存在,占有着break的for循环总是在j==2的时候跳出,所以j的累加永远只能到2,而break只能砍断一个循环,所以while的运行是不受影响的,所以运行结果如下。

return:结束函数执行并传递结果

立即终止当前函数的执行,并将一个值(如果有)返回给函数的调用者。执行流程返回到函数被调用的位置。

定义比较晦涩。它的用法大体分为两种。

一种是作为桥梁,在两个不同的函数之间传递数据

#include <stdio.h> // 加法函数 int add(int num1, int num2) { int sum = num1 + num2; return sum; // 返回计算结果(也可直接return num1+num2; 更精简) } int main() { int a = 10, b = 20; // 调用函数,接收返回值 int result = add(a, b); printf("%d + %d = %d\n", a, b, result); return 0; }

这是我们最常用到的情况,当然,return的后面是可以跟表达式的,就像是我注释中所写的那样,

我们也可以

return num1+num2;

算是精简代码的一种手段。

第二种用法,便是切断一个函数。

和break相比,return的威力是要大的多的。在这个用法中,return所能出现的位置将不再只是位于函数末尾,而它的后面,也可以没有参数。

#include <stdio.h> void check_num(int num) { printf("开始检查数字:%d\n", num); if (num < 0) { printf("数字为负数,终止函数!\n"); return; // 无返回值,仅终止函数 } printf("数字非负,执行后续逻辑:%d * 2 = %d\n", num, num * 2); } int main() { check_num(-5); check_num(10); return 0; }

运行结果:

像我们初学时老师所说的那样,不是return依附于int,而是int需要return。

continue:跳过本次循环中的某些情况

立即终止当前循环迭代的剩余部分,并跳转到下一次迭代的开始

这个的用法便很清晰明了了。以for循环来举例子,假设我们

#include "stdio.h" int main() { int a=0; for(int i=0;i<5;i++) { printf("a=%d\n",a); a++; continue; a++; } return 0; }

显而易见,这个for循环要运行五个小节,而continue的作用,便是将这每个小节给砍断。

然后跳出本次小节,判断执行条件。

http://www.jsqmd.com/news/466494/

相关文章:

  • MQTT 协议详解
  • 链式二叉树经典题目梳理
  • ffmpeg滤镜学习1
  • [特殊字符] 编辑器里的 AI 助手:DeepSeek 实战教程 未来编程展望
  • 防火墙都装了,勒索病毒咋还跟回家一样随便进?
  • **用Python模拟生物神经网络:从单个神经元到简单前馈网络的实现与可视化**在人
  • AES算法的Verilog实现探索
  • JS生成2027-03-02T00:00:00+08:00格式
  • Python基于flask的养老院健康饮食信息管理系统
  • ‌智慧校园专项资金申报答辩全攻略:打动评委的实用技巧解析‌
  • 2019-2025年我国地级市逐月新房房价数据(Excel/Shp格式)
  • 2026 年上海财税合规管控推荐,让经营更有底气
  • IL-6 Surpass ELISA试剂盒如何用于炎症与疾病机制研究?
  • zlmediakit 配置指南
  • Python基于flask的养老院管理系统的设计与实现膳食
  • JetBrains 新推 AI 开发工具,重塑软件开发格局
  • 2026年热门的MC尼龙棒公司推荐:MC尼龙管/MC尼龙齿轮/MC尼龙滑块专业制造厂家推荐 - 行业平台推荐
  • 新款旅游门票预订导游旅行社研学游景点门票等各类旅游服务周边游多级分佣分销在线核销-ym7K
  • 玩转欧姆龙CP1H功能块】工控老司机教你“偷懒“秘籍
  • AI Agent和Agentic AI别再混为一谈!从概念到落地,这篇讲透了
  • Ansys Dyna模拟:混凝土与金属材料SPH粒子流切割及刀片攻进过程热力耦合与温度场模拟分析
  • 龙芯、飞腾加持!揭秘网闸的“国产化”硬核进化史
  • Python基于flask的养老院系统管理四个角色
  • 【问题解决】Error: OpenClaw version mismatch. Expected >= 2026.2.26, found OpenClaw 2026.3.8
  • 01-Java基本介绍
  • LangChain大模型应用开发框架:从RAG到Agent的完整入门指南!!
  • 为什么越来越多公司宁可重写也要逃离 Qt
  • 想成为 AI Agent 玩家?这 7大核心通信协议 你必须知道!
  • [特殊字符] 编辑器嵌入 AI 模型使用教程(以 OpenCCLav、CodeLlama 为例)
  • 深圳直线模组厂家:半导体检测用HIWIN哪种模组?KC/KK系列适配吗?