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

Java循环结构

循环结构

while 循环

while是最基本的循环,它的结构为:

while(布尔表达式){// 循环内容
}

只要布尔表达式为 true,循环就会一直执行下去。

我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。

少部分情况需要一直执行,比如服务器的请求响应监听等。

循环条件一直为 true 就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!

思考:计算1+2+3+...+100=?

package com.faxont.struct;public class WhileDemo03 {public static void main(String[] args) {int i = 1;int sum = 0;while(i <= 100){sum += i;i++;}System.out.println(sum);}
}
package com.faxont.struct;public class WhileDemo01 {public static void main(String[] args) {// 输出1~100int i = 1;while(i <= 100){System.out.println(i);i++;}}
}
package com.faxont.struct;public class WhileDemo02 {public static void main(String[] args) {// 死循环while(true){// 等待客户端连接// 定时检查// ...}}
}

do...while 循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do...while 循环和 while 循环相似,不同的是,do...while 循环至少会执行一次。

do{// 代码语句
}while(布尔表达式);

While 和 do-While 的区别:

  • while先判断后执行。dowhile是先执行后判断!
  • Do...while总是保证 循环体 会被至少执行一次!这是他们的主要差别。

for 循环

虽然所有循环结构都可以用 while 或者 do...while 表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构

for 循环执行的次数是在执行前就确定的。语法格式如下:

for(初始化;布尔表达式;更新){// 代码语句
}

练习1:计算0到100之间的奇数和偶数和

package com.faxont.struct;public class ForPractice01 {public static void main(String[] args) {// 练习1:计算0到100之间的奇数和偶数和int sumOdd = 0;int sumEven = 0;for (int i = 0; i < 101; i++) {if(i % 2 == 0){sumEven += i;}else{sumOdd += i;}}System.out.println("奇数和为" + sumOdd);System.out.println("偶数和为" + sumEven);}
}

练习2:用 while 或 for 循环输出1-1000之间能被5整除的数,并且每行输出3个

package com.faxont.struct;public class ForPractice02 {public static void main(String[] args) {// 练习2:用 while 或 for 循环输出1-1000之间能被5整除的数,并且每行输出3个for (int i = 1; i <= 1000; i++) {if(i % 5 == 0 && i % 3 != 0){System.out.print(i + "\t");}if(i % 5 == 0 && i % 3 == 0){System.out.println(i);}}}
}

练习3:打印九九乘法表

package com.faxont.struct;public class ForPractice03 {public static void main(String[] args) {// 练习3:打印九九乘法表/*1*1=1	2*1=2	2*2=4	3*1=3	3*2=6	3*3=9	4*1=4	4*2=8	4*3=12	4*4=16	5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81*/int product;for (int i = 1; i < 10; i++) {for (int j = 1; j < i + 1; j++) {product = i * j;System.out.print(i + "*" + j + "=" + product + "\t");if(i == j){System.out.print("\n");// System.out.println("");}}}}
}
package com.faxont.struct;public class ForDemo01 {public static void main(String[] args) {int a = 1;// 初始化条件while(a <= 100){// 条件判断System.out.println(a);// 循环体a += 2;// 迭代}System.out.println("while 循环结束!");// 初始化 // 条件判断 // 迭代for (int i = 1; i <= 100; i++) {System.out.println(i);}System.out.println("for 循环结束!");/*关于 for 循环有以下几点说明:最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔表达式的值。如果值为 true,则执行循环体。如果值为 false,则跳出循环,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。再次检测布尔表达式。循环执行上面的过程。直到布尔表达式的值为 false 时,循环结束。*/// 死循环for (;;) {System.out.println("死循环");}}
}

增强 for 循环

这里我们先只是见一面,做个了解,之后数组我们重点使用

在 Java5 中引入了一种主要用于数组的增强型 for 循环。

Java 增强 for 循环语法格式如下:

for(声明语句 : 表达式)
{// 代码句子
}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

break continue

break 在任何循环语句的主体部分,均可用 break 控制循环的流程。break 用于强行退出循环,不执行循环中剩余的语句。(break 语句也在 switch 语句中使用)

package com.faxont.struct;public class BreakDemo {public static void main(String[] args) {int i = 0;while(i < 100){i++;System.out.println(i);if(i == 30){break;}}System.out.println("循环结束!");}
}

continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

package com.faxont.struct;public class ContinueDemo {public static void main(String[] args) {int i = 0;while(i < 100){i++;if(i % 10 == 0){System.out.println();continue;}System.out.print(i + "\t");}// break 在任何循环语句的主体部分,均可用 break 控制循环的流程。break 用于强行退出循环,不执行循环中剩余的语句。(break 语句也在 switch 语句中使用)//// continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。}
}

关于 goto 关键字

  • goto 关键字很早就在程序设计语言中出现。尽管 goto 仍是 Java 的一个保留字,但并为在语言中得到正式使用;Java 没有 goto。然而,在 break 和 continue 这两个关键字的身上,我们仍然能看出一些 goto 的影子---带标签的 break 和 continue。
  • “标签”是指后面跟一个冒号的标识符,例如:label:
  • 对 Java 来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于 break 和 continue 关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
package com.faxont.struct;public class LabelDemo {public static void main(String[] args) {// 打印101-150之间所有的质数// 质数是指在大于1的数,除了1和自身外,不能被其他数整除的数int count = 0;// 不建议使用!outer:for(int i = 101; i <= 150; i++){for(int j = 2; j < i / 2; j++){// 只循环到 i/2 是因为一个数的因数一定小于他的一半if(i % j == 0){continue outer;}}System.out.print(i + "\t");}}
}
http://www.jsqmd.com/news/333054/

相关文章:

  • 2026年黑龙江推荐的面点培训基地,黑天鹅学校品牌靠谱吗 - mypinpai
  • <span class=“js_title_inner“>4万亿美元!Alphabet 缔造历史:AI 战略大反攻,谷歌重回巅峰</span>
  • 单PWM加移相控制谐振型双有源桥变换器(DAB SRC)闭环仿真模型探索
  • 计算机毕设2026方向建议
  • 实用指南:云计算与大数据:引领数字经济的双引擎
  • 2026年国内热门的门窗定制排行榜,门窗/推拉窗/窗纱一体铝门窗/慕莎尼奥门窗/平移断桥提升窗/安全门窗,门窗批发哪家好 - 品牌推荐师
  • 一体化交付方案:2026年提供“软件+硬件”闭环的BI本地私有化部署厂商 - 品牌2025
  • 上海智推时代官方联系方式公布:合作咨询一键直达 - 速递信息
  • 聊聊新乡靠谱的钢结构施工制造厂,哪家更值得选 - 工业推荐榜
  • 上海智推时代怎么联系?官方沟通渠道全整理 - 速递信息
  • FlexCAD环境
  • 总结靠谱的蜡烛香精加工厂,芬畅凝科按需定制排名靠前 - myqiye
  • TypeScript_typeof的使用
  • 2026年国内优秀的自动化仓库制造厂口碑排行榜,智能仓储/全自动仓库/立体仓储/自动化仓库,自动化仓库制造企业怎么选 - 品牌推荐师
  • io分析第三章
  • 高温存储器在随钻测井系统中的应用对比:小容量实时控制 vs 大容量数据记录(下)
  • 2026 年2月 geo 公司优化行业领先者解析:核心能力与行业发展契合度 - 速递信息
  • ch58x/ch59x gpio模拟串口发送
  • 遗传算法优化的极限学习机模型(GA-ELM)Matlab实现
  • 全网最全10个降AIGC网站 千笔AI助你轻松降AI率
  • 私有化BI部署“攻坚者”:2026年在复杂内网环境中表现优异的厂商推荐 - 品牌2025
  • 2026最新按摩椅品牌推荐 送爸妈、送长辈按摩椅推荐首选! - 速递信息
  • js将批量下载的文件如jpg、txt、json文件放到压缩包后再进行下载
  • 基于PLC的电动车无刷直流电机控制
  • 2026 年 GEO 优化公司标杆案例解析:高口碑geo服务商推荐 - 速递信息
  • 2026好用一键ai生成文献综述的软件都有哪些?
  • 2026福腾节能等口碑好的防火堵料公司,费用情况如何 - 工业设备
  • 宇树开源新里程碑:UnifoLM-VLA-0模型让机器人走进生活
  • 基于PLC的打捞机械手自动控制系统
  • 超越GPT-5.2和Gemini-3-Pro!商汤多模态搜索、推理模型开源