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

循环控制:break和continue用法

        在循环执行的过程中,有时需要在特定条件下提前终止或跳过当前循环,这是编程中常见的需求。C语言提供了breakcontinue两个关键字来满足这些需求。

目录

一、while循环中的break和continue

1、break语句

示例代码:

执行结果:

分析:

2、continue语句

示例代码:

潜在问题:

结论:

二、for循环中的break和continue

1、break语句

示例代码:

执行结果:

2、continue语句

示例代码:

执行结果:

分析:

三、do-while循环中的break和continue

break示例:

continue示例:

注意:

四、总结对比


一、while循环中的break和continue

1、break语句

    break语句用于立即终止当前所在的循环结构,无论循环条件是否仍然满足。执行break后,程序会继续执行循环之后的代码。

示例代码:

#include <stdio.h>int main()
{int i = 1;while(i <= 10){if(i == 5)break;  // 当i等于5时,执行break终止循环printf("%d ", i);i = i + 1;}return 0;
}

执行结果:

分析:

  • 程序打印1、2、3、4后,当i等于5时,执行break语句

  • 循环立即终止,不再执行后续的循环体

  • break会永久终止当前所在的循环结构

2、continue语句

continue语句用于跳过当前循环的剩余部分,直接进入下一次循环的条件判断。

示例代码:

#include <stdio.h>int main()
{int i = 1;while(i <= 10){if(i == 5)continue;  // 当i等于5时,跳过本次循环剩余部分printf("%d ", i);i = i + 1;}return 0;
}

潜在问题:

  • 当i等于5时,执行continue跳过了i = i + 1语句

  • 导致i始终为5,程序陷入无限循环

  • 这是因为在while循环中,循环变量的更新位于continue之后

结论:

  • continue会跳过当前循环中剩余的代码

  • 在while循环中使用continue时,要特别注意循环变量的更新位置,避免死循环


二、for循环中的break和continue

1、break语句

for循环中的breakwhile循环中的行为一致,都是立即终止循环。

示例代码:

#include <stdio.h>int main()
{int i = 1;for(i = 1; i <= 10; i++){if(i == 5)break;  // 当i等于5时终止循环printf("%d ", i);}return 0;
}

执行结果:

2、continue语句

    for循环中的continue行为与while循环略有不同,它会跳过循环体剩余部分,但仍会执行循环变量的更新。

示例代码:

#include <stdio.h>int main()
{int i = 1;for(i = 1; i <= 10; i++){if(i == 5)continue;  // 跳过本次循环剩余部分printf("%d ", i);}return 0;
}

执行结果:

分析:

  • 当i等于5时,continue跳过了printf语句

  • 但仍执行了i++,所以不会造成死循环

  • 这是for循环与while循环中continue的重要区别


三、do-while循环中的break和continue

do-while循环中breakcontinue的行为与while循环基本一致。

break示例:

#include <stdio.h>int main()
{int i = 1;do{if(i == 5)break;printf("%d ", i);i = i + 1;} while(i <= 10);return 0;
}

continue示例:

#include <stdio.h>int main()
{int i = 1;do{if(i == 5)continue;printf("%d ", i);i = i + 1;} while(i <= 10);return 0;
}

注意:

  • do-while循环中的continue同样可能导致死循环,如果循环变量的更新位于continue之后

  • 使用时需要特别注意循环变量的更新位置


四、总结对比

语句while循环for循环
break立即终止循环立即终止循环
continue跳过剩余代码,直接判断循环条件
可能导致死循环
跳过剩余代码,但仍执行循环变量更新
不会导致死循环

        在实际编程中,应根据具体需求选择合适的循环结构和控制语句,并注意它们的行为差异,特别是可能导致的死循环问题。

http://www.dtcms.com/a/326108.html

相关文章:

  • 鸿蒙flutter项目接入极光推送
  • Java项目基本流程(三)
  • Orange的运维学习日记--38.MariaDB详解与服务部署
  • linux安装和使用git
  • Elasticsearch 官方 Node.js 从零到生产
  • docker部署elasticsearch-8.11.1
  • 网络的基本概念、通信原理以及网络安全问题
  • YOLOv6深度解析:实时目标检测的新突破
  • 时序数据库为什么选IoTDB?
  • 爬虫与数据分析结合案例
  • STM32 HAL驱动MPU6050传感器
  • p6spy和p6spy-spring-boot-starter的SpringBoot3集成配置
  • 高性能Web服务器
  • java基础概念(二)----变量(附练习题)
  • Go 语言三大核心数据结构深度解析:数组、切片(Slice)与映射(Map)
  • Unity插件DOTween使用
  • 【GPT入门】第45课 无梯子,linux/win下载huggingface模型方法
  • 如何避免团队文件同步过程中版本信息的丢失?
  • GAI 与 Tesla 机器人的具体联动机制
  • 变频器与伺服系统的工作原理,干扰来源及治理方式
  • 软件测试关于搜索方面的测试用例
  • [AI 生成] kafka 面试题
  • 是否有必要使用 Oracle 向量数据库?
  • 【图像处理基石】UE输出渲染视频,有哪些画质相关的维度和标准可以参考?
  • OmniHuman:字节推出的AI项目,支持单张照片生成逼真全身动态视频
  • 不同FPGA开发板系统移植步骤
  • 《C++中 type_traits 的深入解析与应用》
  • 【Docker实战进阶】Docker 实战命令大全
  • “底层闭源 + Lua 脚本” 开发模式
  • 缺省路由的内容