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

循环结构.

循环结构

语言中的结构:顺序结构、分支结构、循环结构

一、循环的概念【理解即可】

1. 概念:通过某个条件,重复并且有规律的执行一段程序代码。

2. 循环的组成:循环变量的初始化、循环条件、循环变量改变(递增、递减)、循环体(重复执行的代码)。

二、循环的分类

1. while循环:【重点】

(1) 语法:
循环变量的定义;
while(循环条件/布尔表达式){
// 循环体
// (循环变量的改变)
}
(2) 执行的原理:先判断循环条件是否满足(布尔表达式的结果是否true),满足(true),则执行循环体,同时循环变量改变,接着继续判断循环条件是否满足,满足-继续执行循环体,同时循环变量改变,直到循环条件不满足(布尔表达式的结果为false),结束循环,继续执行循环后面的内容。
(3) 循环的特点:先判断,再执行,执行的次数:0~n次。
(4) 注意:循环过程中,如果循环变量没有给予任何改变,可能会出现死循环。
循环条件如果直接给的true,则循环一直进行,也是死循环的现象。

2. do…while 循环

(1) 语法:
do{
//循环体
// 循环变量改变
}while(循环条件/布尔表达式); // 分号不能省略
(2) 执行的原理:先执行循环体,同时循环变量进行改变,再判断循环条件是否满足,满足,继续执行循环体,同时循环变量改变,再判断循环条件,直到循环条件不满足(结果为false为止),结束循环,继续执行循环后面的内容。
(3) 执行特点:先执行,再判断,执行次数:1~n次。

3. for循环【重点】

(1) 语法:
for(①循环变量的初始化; ②循环条件/布尔表达式; ③循环变量的改变){
// 循环体④
}
(2) 循环执行的原理:先进行循环变量的初始化①,然后判断循环条件②,条件成立(结果为true),执行循环体④,接着执行循环变量的改变③,再次判断循环条件②,条件成立,继续执行循环体④,再次改变循环变量③,直到循环条件不成立(结果为false),结束循环,继续循环之后的内容。
(3) 特点:先判断,再执行,执行的次数:0~n次。
(4) 注意:
a. for后面的()中循环变量的改变可以写在循环体中:
for(循环变量的初始化;循环条件; ){
// 循环体
// 循环变量的改变 --------》不建议
}
b. for()中的循环变量的定义及初始化可以写在循环的前面,但是定义循环的前面的循环变量,作用范围扩大,开发时,通常将循环变量的定义及初始化定义在()中,这种定义变量只能在for循环结构中使用,循环结束,循环变量也被收回,减小空间,从而提高空间的利用率。

总结:
(1) 如果循环次数明确时,建议使用 for
(2) 如果循环次数不明确时,建议使用 while 或是 do…while

三、循环的控制语句【重点】

1. break:终止、跳出循环结构。

2. continue:结束本次循环,从而进入下一次循环。

面试题目:写出 break 和 continue 的区别。
解析:break:不仅可以用在循环中还可以用在switch…case结构,continue只能用在循环中。
break:用在循环中,代表结束、跳出、终止循环结构;
continue:结束本次循环,从而的进入下一次循环。

四、循环的嵌套

1. 概念:在一个循环结构中,又定义了一个完整的循环结构。

2. 双层循环的循环次数:外层循环次数*内层循环的次数

3. break 和 continue用在循环嵌套中:
break:终止、跳出本层的循环
continue:结束本层本次循环,从而进入下一次循环。

4. 双层循环可以用于打印输出图形,通常用外层循环控制图形的行数,内层循环控制图形的列数
//外层循环
for(int j=1;j<=9;j++){
//内层循环
for(int i=1;i<=10;i++){
System.out.print("*");
}
System.out.println(); //换行
}
5. 利用标号控制循环:
outer:for(int i=1;i<=3;i++){
inner:for(int j= 1;j<=4;j++){
if(j==2){
continue outer;//等价于 break inner;
}
System.out.println("i="+i+",j="+j);
}
}

http://www.rkmt.cn/news/1470876.html

相关文章:

  • 如何用LRCGET批量下载工具,为你的离线音乐库一键添加精准同步歌词
  • 模板驱动文档自动化:从填空题到流水线的工程实践
  • 攻防视角下的云安全验证实战指南
  • 安卓手机直接跑YOLOv8实例分割和旋转框检测,NCNN预编译部署包开箱即用
  • Google Pay支付接入别再踩坑了!手把手教你搞定服务账号配置与API权限(附Java代码示例)
  • 2026年建筑垃圾再生骨料设备厂家top5排行及选型推荐:陈腐垃圾分拣设备/陈腐垃圾处理设备/排行一览 - 优质品牌商家
  • 告别Cartopy!用Python Basemap + NOAA ETOPO2数据,5分钟搞定一张专业全球地形图
  • 基于PLC的茶叶加工自动化控制系统设计与实现
  • 浪潮服务器硬盘亮红灯还滴滴响?别慌,手把手教你进RAID管理界面搞定Foreign状态
  • 2026年口碑好的高性能运动面料/功能运动面料精选推荐公司 - 行业平台推荐
  • docker镜像配置
  • 小程序授权登录全量避坑!手机号授权、静默登录、自动登录失效解决
  • QQ音乐解析技术深度解析:高效获取音乐资源的自动化解决方案
  • STM32实现LM19温度精准测量
  • 紧跟AI算法迭代节奏,178软文网动态优化运营方案实现长期稳定输出
  • SAP PP/MM模块联动:物料版次(Revision Level)在生产订单和采购订单中的完整跟踪流程
  • 告别黑屏!手把手教你用ESP8266驱动1.44寸ST7735屏幕,从接线到显示第一个Hello World
  • Windows 11系统优化终极指南:如何用Win11Debloat让你的电脑跑得更快更干净
  • ESP32 TCP通信保姆级实战:从零搭建客户端,并用网络调试助手/Netcat测试
  • 从VGG16到ResNet18:何恺明当年到底解决了什么‘训练难题’?一个梯度消失的通俗比喻
  • 字符串匹配算法怎么选?从场景出发聊聊Horspool、KMP和Boyer-Moore的适用性
  • 3个维度重构阅读体验:如何通过开源书源实现内容自由?
  • 015、Zephyr RTOS开发环境搭建(SDK安装与配置)
  • 3步搞定金融数据获取:pywencai同花顺问财的Python自动化指南
  • 别再只会用DS18B20了!用STM32驱动PT100实现0.2℃精度测温(附电桥与差分放大电路详解)
  • 老路由焕新记:给吃灰的小米路由器R2D刷上Misstar Tools,解锁广告过滤/内网穿透/离线下载
  • 大模型时代必备技能,深度拆解Prompt工程、RAG调优与Agent编排的黄金三角组合
  • AFSIM 笔记-1-工具介绍
  • TSG软件深度数据整合实战:如何把光谱、钻孔照片和化验数据‘拧’成一根绳?
  • Python公开数据采集实战:如何解决请求高频拦截与Session会话中断问题