让代码学会“思考”和“重复”——Java控制结构(循环篇)

发布时间:2026/11/12 20:13:22

让代码学会“思考”和“重复”——Java控制结构(循环篇) 承接上篇顺序、分支篇循环结构应用情景比如当你需要打印 5 次 你好Java 时你可以这样编写public class Main { public static void main(String[] args) { //打印5次 你好Java System.out.println(你好Java); System.out.println(你好Java); System.out.println(你好Java); System.out.println(你好Java); System.out.println(你好Java); } }但是当你需要打印10次、20次甚至上百次时此方法是否还适用显然不行。这时就需要借用循环结构来解决打印次数量较大的情况for(int i 1; i 100; i) { //打印100次 你好Java System.out.println(你好Java); }int i 1; while(i 100) { //打印100次 你好Java System.out.println(你好Java); i; }int i 1; do { //打印100次 你好Java System.out.println(你好Java); i; } while(i 100);基本介绍听其名而知其意就是让你的代码可以循环执行循环结构主要有三种(1). for(2). while(3). do-whilefor 循环、while 循环与 do- while 循环执行流程图for 循环控制基本语法for(循环变量初始化; 循环条件; 循环变量迭代) {循环操作(可多条语句);}执行顺序在每一次循环中先初始化循环变量再判断循环条件是否满足。若满足则执行循环操作最后迭代循环变量并进入下一次循环若不满足则跳出循环for 循环结束可结合上面的执行流程图理解for 循环控制的注意事项和细节说明1. 循环条件是返回一个布尔值的表达式2. for( ; 循环判断条件; ) 中的初始化和变量迭代可以写到其它地方但是两边的分号不能省略int i 1; //循环变量初始化 for( ; i 10; ) { //打印 10 次 hello, java System.out.println(hello, java i); i; } System.out.println(i i); //11注意for( ; ; ) 表示一个死循环无限循环除非有特殊需求,否则不建议使用3. 循环初始值可以有多条初始化语句但要求类型一样并且中间用逗号隔开循环变量迭代也可以有多条变量迭代语句中间用逗号隔开int count 3; for(int i 0, j 0; i count; i, j 2) { System.out.println(i i j j); } /* i 0 j 0 i 1 j 2 i 2 j 4 */练习题1. 打印 1-100 之间所有是 9 的倍数的整数统计个数及总和public class ForExercise01 { //编写一个main方法 public static void main(String[] args) { int i 1; int add 0, count 0; for(i 1; i 100; i) { if(i % 9 0) { System.out.println(i); add i; count; } } System.out.printf(1~100之间所有是9的倍数的整数有 count 个总和为 add); //9 18 27 36 45 54 63 72 81 90 99 //count 11, add 594 } }2. 完成下面的表达式输出0 5 51 4 52 3 53 2 54 1 55 0 5public class ForExercise02 { //编写一个main方法 public static void main(String[] args) { //i 的起始值为 0j 为 5一个加一个减相互对仗 for(int i 0, j 5; i 5; i, j--) { int num i j; System.out.println(i j num); } } }while 循环控制基本语法循环变量初始化while(循环条件) {循环体(语句);循环变量迭代;}执行顺序循环变量在循环外初始化进入 while 循环判断是否满足循环条件。若满足则按顺序先执行循环体后执行循环变量迭代并进入下一循环若不满足则跳出循环whlie 循环结束可结合上面的流程图理解结合基本语法编写打印 10 次 hello, java 程序public class While01 { //编写一个main方法 public static void main(String[] args) { int i 1; //循环变量初始化 while(i 10) { //循环条件 System.out.println(hello, java i); i; //循环变量迭代 } } }while 循环控制的注意事项和细节说明1. 循环条件是返回一个布尔值的表达式2. while 循环是先判断再执行语句练习题1. 打印 1-100 之间所有能被 3 整除的数public class WhileExercise01 { //编写一个main方法 public static void main(String[] args) { int num 1; while(num 100) { if(num % 3 0) { System.out.print(num ); //每个数之间用空格隔开 } num; } } }2. 打印 40-200 之间所有的偶数public class WhileExercise { //编写一个main方法 public static void main(String[] args) { int num 40; while(num 200) { if(num % 2 0) { System.out.print(num ); //每个数之间用空格隔开 } num; } } }注意System.out.println() 与 System.out.print() 的区别前者执行完自动换行后者不换行do-whlie 循环控制基本语法do {循环体(语句);循环变量迭代;} while(循环条件);执行顺序do-while 循环变量与 for, while 不同它遵循的是先执行后判断。即先执行循环体再执行循环变量迭代最后判断循环条件。若满足则进入下一次循环否则跳出循环do-while 循环结束结合基本语法编写打印 10 次 hello, java 程序public class DoWhile01 { //编写一个main方法 public static void main(String[] args) { int i 1; do { System.out.println(hello, java i); //循环执行语句 i; //循环变量迭代 } while(i 10); //循环条件 } }do-while 循环控制的注意事项与细节说明1. 循环条件是返回一个布尔值表达式2. do..while 循环是先执行再判断因此它至少执行一次练习题1. 统计 1-200 之间能被 5 整除但不能被 3 整除的个数public class DoWhileExercise01 { //编写一个main方法 public static void main(String[] args) { int count 0; int j 1; do { if(j % 5 0 j % 3 ! 0) { //能被 5 整除但不能被 3 整除 count; } j; } while(j 200); System.out.println(1-200之间能被5整出但不能被3整除的数有 count 个); } }2. 情景试题妈妈在烤鱼小明问烤好了吗如果妈妈说没烤好小明继续玩游戏如果妈妈说烤好了小明就放下游戏去吃烤鱼提示System.out.println(小明问烤好了吗 y/n);import java.util.Scanner; public class DoWhileExercise02 { //编写一个main方法 public static void main(String[] args) { Scanner scanner new Scanner(System.in); char answer; //小明妈妈的回复 y/n do { System.out.println(小明问烤好了吗 y/n); answer scanner.next().charAt(0); if(answer n) { System.out.println(小明继续玩游戏); } } while(answer ! y); System.out.println(小明放下游戏去吃烤鱼); } }多循环控制介绍1. 将一个循环放在另一个循环体内就形成了嵌套循环。其中for, while, do…while 均可以作为外层循环和内层循环。建议一般使用两层最多不要超过3层否则代码的可读性很差2. 实质上嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 false 时才会完全跳出内层循环才可结束外层的当次循环开始下一次的循环。3. 设外层循环次数为 m 次内层为 n 次则内层循环体实际上需要执行 m * n 次。for(int i 1; i 7; i) { for(int j 1; j 2; j) { System.out.println(ok~); } } //7 * 2 14 总共执行 14 次循环应用案例for(int i 0; i 2; i) { for(int j 0; j 3; j) { System.out.println(i i , j j); } } //外层循环 2 次内层循环 3 次共执行 2 × 3 6 次 /* i 0, j 0 i 0, j 1 i 0, j 2 i 1, j 0 i 1, j 1 i 1, j 2 */嵌套分析外层循环中循环变量 i 初始值为 0小于 2进入内层 for 循环执行循环变量 j 的循环从 0 到 2然后结束内层循环继续执行外层循环i 值变为 1进入内层 for 循环...练习题1. 按要求完成下面的程序(1). 统计3个班成绩情况每个班有5名同学(2). 求出各个班的平均分和所有班级的平均分(3). 统计3个班及格人数每个班有5名同学import java.util.Scanner; public class MulForExercise01 { public static void main(String[] args) { Scanner scanner new Scanner(System.in); int pass_Num 0; // 及格人数 double totalAll 0; // 所有班级的总分 int classNum 3; // 班级个数 int stuNum 5; // 学生个数 for(int i 1; i classNum; i) { double classTotal 0; // 当前班级的总分 for(int j 1; j stuNum; j) { System.out.println(请输入第 i 个班的第 j 个学生的成绩); double score scanner.nextDouble(); if(score 60) { pass_Num; // 统计及格人数 } classTotal score; // 累加当前学生的分数 } // 计算当前班级的平均分 double classAverage classTotal / stuNum; System.out.println(第 i 个班的平均分为 classAverage); totalAll classTotal; // 累加所有班级的总分 } // 计算所有班级的平均分 double last_average totalAll / (classNum * stuNum); System.out.println(所有班级的平均分为 last_average); System.out.println(3个班及格人数为 pass_Num); } }break 语句与 continue 语句执行流程图以 while 使用 break 为例跳转控制语句-break基本介绍break 语句用于终止某个语句块的执行一般是用在 switch 或者循环中基本语法{......break;......}快速入门public class Break01 { //编写一个main方法 public static void main(String[] args) { for(int i 0; i 10; i) { if(i 3) { //当 i 的值为 3 时break 跳出循环后续循环部分不再进行 break; } System.out.println(i i); } } /* i 0 i 1 i 2 */ }代码解读在 for 循环中当 i 的值为 3 时使用 break 跳出整个循环后面的循环部分不再执行break 语句的注意事项和细节说明1. break 语句出现在多层嵌套的语句块中时可以通过标签指明要终止的是哪一层语块2. 标签的基本使用label1: { ...label2: { ...label3: { ...break (label2);...}}}注标签可以自行命名不必要以 label 命名也可以如 abc1, abc2, abc3 等等public class BreakDetail { //编写一个main方法 public static void main(String[] args) { label1: for(int j 0; j 4; j) { label2: for(int i 0; i 10; i) { if(i 2) { //break; //等价 break label2 break label1; //跳出 label1 处的整个循环块 } System.out.println(i i); } } /* i 0 i 1 */ } }练习题1. 1-100 以内的数求和求出当和第一次大于 20 的当前数【for break】public class BreakExercise { //编写一个main方法 public static void main(String[] args) { int add 0; int i 0; for(i 1; ; i) { add i; if(add 20) { //当和大于 20 时跳出循环 break; } } System.out.println(当和第一次大于20的当前数为 i); //6 } }跳转控制语句-continue基本介绍1. continue 语句用于结束本次循环继续执行下一次循环2. continue 语句出现在多层嵌套的循环语句体中时可以通过标签指明要跳过的是哪一层循环规则和 break 标签的使用一样基本语法{ ......continue;......}快速入门public class Continue01 { //编写一个main方法 public static void main(String[] args) { int i 1; while(i 4) { i; if(i 2) { //跳过本次循环继续执行下一次循环 continue; } System.out.println(i i); } /* i 3 i 4 i 5 */ } }代码解读在 while 循环中i 后 i 的值为 2跳过本次循环打印部分 i 值部分跳过直接进入下一次循环continue 的细节案例public class ContinueDetail { //编写一个main方法 public static void main(String[] args) { label1: for(int j 0; j 4; j) { label2: for(int i 0; i 10; i) { if(i 2) { //continue; //等价于 continue label2 continue label1; //跳过 label1 处的本次循环 } System.out.println(i i); } } /* i 0 i 1 i 0 i 1 i 0 i 1 i 0 i 1 */ } }代码解读j 满足的条件的值为 0, 1, 2, 3。跳过 label1内部的 label2 的 for 循环也被跳过故每一次内部循环只打印出 i 0 和 i 1 后就被 continue 跳过总共打印四次跳转控制语句-return介绍return 使用在方法表示跳出所在的方法。注意如果 return 写在 main 方法则表示退出程序在普通方法中则只是返回调用处后续学习方法部分时会详细讲述public class Return01 { //编写一个main方法 public static void main(String[] args) { for(int i 1; i 5; i) { if(i 3) { System.out.println(hello, java i); return; //当 return 用在方法时表示跳出方法如果使用在 main表示退出程序 } System.out.println(Hello World!); } System.out.println(go on..); /* Hello World! Hello World! hello, java3 */ } }代码解读在 for 循环中当 i 1 和 i 2 时不满足 if(i 3)不执行打印 hello, java i执行了两次 Hello World! 的打印当 i 3 满足 if 语句时执行 hello, java i 的打印然后 return由于 return 用在 main 方法中退出了整个程序故程序最后的 go on.. 打印无从执行结语以上就是控制结构相关知识的所有梳理了顺序结构是程序的“直行道”分支结构if - else、switch让程序学会“判断”循环结构for、while、do-while让程序学会“重复”。三者组合几乎可以解决所有业务流程的逻辑问题。控制结构是编程逻辑的基石希望小伙伴们多敲代码、多画流程图把逻辑思维练扎实。在本篇章中习题的整理较少可能不足以满足小伙伴们的学习需求下一篇白弟会专门再整理一些控制结构的相关练习欢迎小伙伴的参考。
延伸阅读

更多相关文章

2026/11/11 22:41:57

OpenClaw部署指南:解决AI环境依赖难题,实现高效开发

1. 项目概述:为什么需要OpenClaw? 如果你在AI、机器学习或者数据科学领域摸爬滚打过一段时间,大概率会遇到一个让人头疼的问题:项目环境依赖。不同的项目需要不同版本的Python、PyTorch、CUDA,甚至是一些特定版本的系…

2026/11/9 16:08:12

ZStack企业级知识工程实践:如何“造”出可信知识?

一位一线工程师在深夜排查一个云主机热迁移失败的问题。报错信息很明确:rsync "connection unexpectedly closed"。他知道公司里一定有人处理过同样的问题——也许在某份文档里,也许在某个工单里,也许在某位同事的聊天记录里。但此…

2026/11/9 16:06:38

2026.7.13(1)【图片隐写】JinSanPang

📌 题目信息项目内容题目名称JinSanPang题目来源BUUCTF题目类型MISC / 图片隐写 / GIF 多帧隐写子分类图片隐写考点帧隐藏信息提取、GIF 动图逐帧分析难度⭐最终 Flagflag{he11ohongke}🛠️ 使用工具StegSolve(或 GIF 帧浏览器/图片编辑软件&…

2026/11/13 0:46:35

荔浦在哪可以考电工证多久拿证全流程详解

荔浦在哪可以考电工证多久拿证全流程详解 工地太忙根本没时间复习考试,这是很多在荔浦从事建筑、装修、安装等工作的电工朋友的真实写照。很多人手上已经有电工证,但因为工作节奏快、复习时间少,考试总是被一拖再拖,甚至因为没通过考试而影响了工作机会。…

2026/11/13 0:46:35

深圳罗湖哪里学电工证 官方回应学历不高也能报

深圳罗湖哪里学电工证 官方回应学历不高也能报 你是不是也经常听人说“电工证必须大专以上学历才能报考”?其实不然, 官方回应 明确指出,只要符合年龄、健康条件和相关工作经验, 学历不高也能报考电工证…

2026/11/13 0:46:35

5级电工证补贴怎么领 怎么在哪考才不被坑

5级电工证补贴怎么领 怎么在哪考才不被坑 你是不是学历不高,担心自己连5级电工证都报不上名?别慌,这事儿真没你想的那么难。5级电工证虽然门槛不低,但只要你符合条件,报名流程并不复杂。关键是, 在哪考 ,真的不是随便找个地方就能搞定的。…

2026/11/13 0:41:35

什么是建委电工证最新政策解读

证书过期了不知道怎么复审延期?2026河南最新政策解读 证书过期了不知道怎么复审延期?你不是一个人,这是很多漯河市政公用工程从业者的真实写照。特别是建委电工证,不仅关系到你的职业资格,还直接影响到你能否继续从事相关工作。2026年河南最新政…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/13 0:01:06

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了 你是不是也像我一样,第一次听说“高压电工证”这个名词,就感觉一头雾水?其实很多人都跟我一样,不知道去哪报名、怕被中介坑,结果花了冤枉钱还考不上。今天我就从一个在商丘培训过的学员角度,…

2026/11/13 0:01:06

黎里考电工证在哪里值不值得考

黎里考电工证在哪里值不值得考 之前考的证在外省能不能转过来?这是很多在外地工作、准备回老家发展的朋友最关心的问题。特别是在黎里地区,很多从事电力相关工作的朋友,都面临这样一个难题: 外省的电工证能否在本地使用?值不值得考?…

2026/11/13 0:01:06

毕节哪里考电工证 怎么报名学历不高也能上手

毕节哪里考电工证 怎么报名学历不高也能上手 你是不是也和我一样,学历不高,想着考个电工证,但又担心自己条件不够,怕报不上名?其实不然,只要符合条件,学历不高也能考电工证。今天就来聊聊【毕节哪里考电工证】这个问题,还有怎么报名,让你一步到位不…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/12 9:51:42

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑