深入理解 Java 循环结构:while、do while、for 和 for-each 循环
Java 循环
循环可以执行一个代码块,只要达到指定的条件。循环很方便,因为它们节省时间,减少错误,并使代码更易读。
Java While 循环
while 循环会循环执行一个代码块,只要指定的条件为真:
语法
while (condition) {
// 要执行的代码块
}
在下面的示例中,只要变量(i)小于 5,循环中的代码将一遍又一遍地运行:
示例
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
注意:不要忘记增加条件中使用的变量,否则循环永远不会结束!
Do/While 循环
do/while 循环是 while 循环的变体。此循环将在检查条件是否为真之前执行一次代码块,然后只要条件为真,它就会重复执行循环。
语法
do {
// 要执行的代码块
}
while (condition);
下面的示例使用 do/while 循环。即使条件为 false,循环至少也会执行一次,因为在测试条件之前执行代码块:
示例
int i = 0;
do {
System.out.println(i);
i++;
}
while (i < 5);
不要忘记增加条件中使用的变量,否则循环永远不会结束!
Java For 循环
当您确切地知道要循环多少次一个代码块时,请使用 for 循环而不是 while 循环。
语法:
for (statement 1; statement 2; statement 3) {
// 要执行的代码块
}
说明:
- 语句1在执行代码块之前执行一次。
- 语句2定义执行代码块的条件。
- 语句3在执行代码块后执行(每次)。
示例:
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
输出:
0
1
2
3
4
示例说明:
- 语句1设置一个变量
i并将其值初始化为 0。 - 语句2定义循环条件:
i必须小于 5。 - 语句3在每次循环迭代中将
i的值增加 1。
另一个示例:
for (int i = 0; i <= 10; i = i + 2) {
System.out.println(i);
}
输出:
0
2
4
6
8
10
示例说明:
- 这个示例只打印0到10之间的偶数。
- 语句3将
i的值增加 2,而不是 1。
嵌套循环:
您还可以将一个循环嵌套在另一个循环内。这称为嵌套循环。
示例:
for (int i = 1; i <= 2; i++) {
System.out.println("外部循环: " + i);
for (int j = 1; j <= 3; j++) {
System.out.println(" 内部循环: " + j);
}
}
输出:
外部循环: 1
内部循环: 1
内部循环: 2
内部循环: 3
外部循环: 2
内部循环: 1
内部循环: 2
内部循环: 3
示例说明:
- 外部循环迭代两次,内部循环迭代三次。
- 内部循环将在外部循环的每次迭代中执行三次。
总结:
for循环是一种在特定次数内重复执行代码块的有效方式。- 您可以使用嵌套循环创建更复杂的循环结构。
For-Each 循环
除了传统的 for 循环,Java 还提供了一种更简洁的 for-each 循环,专门用于遍历数组和集合中的元素。
语法:
for (type variableName : arrayName) {
// 要执行的代码块
}
说明:
type: 声明变量的类型,该类型必须与数组元素的类型一致。variableName: 循环每次迭代都会赋值一个数组元素给该变量。arrayName: 要遍历的数组。
示例:
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (String car : cars) {
System.out.println(car);
}
输出:
Volvo
BMW
Ford
Mazda
优点:
for-each循环语法简洁,易于理解和使用。for-each循环避免了使用循环计数器,使得代码更加简洁。
局限性:
for-each循环不能修改数组元素的值。for-each循环不能在循环中跳过或提前结束循环。
总结:
for-each 循环是一种方便的语法,用于遍历数组和集合中的元素。如果您只需要遍历数组中的元素,而不需要修改它们的值,那么 for-each 循环是最佳选择。
额外知识:
在 Java 8 及更高版本中,还可以
使用Stream API来遍历数组和集合。Stream API 提供了更强大的功能,例如过滤、排序和映射。
以下是如何使用 Stream API 遍历数组的示例:
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars.stream().forEach(System.out::println);
输出:
Volvo
BMW
Ford
Mazda
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
深入理解 Java 循环结构:while、do while、for 和 for-each 循环的更多相关文章
- Java程序设计基础笔记 • 【第5章 循环结构】
全部章节 >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...
- 九天学会Java,第四天,循环结构
变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...
- 四、 java循环结构
for循环结构: 格式:①初始化条件;②循环条件;③迭代条件;④循环体 for(①;②;③){ //④ } 执行过程:①-②-④-③-②-④-③-...-④-③-②,直至循环条件不满足,退出当前的循环 ...
- java 基本语法(五) 流程控制(二) 循环结构
1.循环结构的四要素① 初始化条件② 循环条件 --->是boolean类型③ 循环体④ 迭代条件说明:通常情况下,循环结束都是因为②中循环条件返回false了. 2.三种循环结构:2.1 fo ...
- 7、Java 循环结构
本章讲解一下Java中常见的三种循环结构,顺序结构的程序语句只能 被执行一次.使用循环可以解决我们多个常量或者变量的同一类的操作或者更加复杂的操作. 循环 循环结构有三大类: 1.for循环:确定循环 ...
- Java中的循环结构(二)
循环结构(二) 学习本章有道的单词: rate:速度,比率 young:年轻的,年少 schedule:时间表,调度 neggtive:消极的;否定 customer:顾客,观众 birthday:生 ...
- 深度理解PHP中for与foreach两个循环结构遍历数组的区别
遍历一个数组是编程中最常见不过的了,这里讨论下for和foreach两种方法: 首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b ...
- java 基础 03 运算符 分支结构 循环结构
今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...
- Java中的循环结构
1.while循环结构 语法: while(循环条件){ //循环操作 } while循环结构流程图: 举例: int i = 1; while(i <= 100){ System.out.pr ...
- Java 内存结构备忘录
本文详细描述了 Java 堆内存模型,垃圾回收算法以及处理内存泄露的最佳方案,并辅之以图表,希望能对理解 Java 内存结构有所帮助.原文作者 Sumith Puri,本文系 OneAPM 工程师编译 ...
随机推荐
- Entity Framework发布到IIS报错
参考资料:https://www.cnblogs.com/mrma/p/5404584.html 报错信息 The Entity Framework provider type 'System.Dat ...
- ASP.NET Core 应用(SignalR)发布到 IIS 报错(HTTP Error 500.19 - Internal Server Error)
参考资料: ASP.NET Core SignalR 入门 将 ASP.NET Core 应用发布到 IIS Download .NET Core 报错信息: HTTP Error 500.19 - ...
- DataGear 制作支持表单交互和多图表联动的数据可视化看板
对于数据可视化,有时需要根据用户输入的查询条件展示限定范围的数据图表,DataGear的看板表单功能可以快速方便地实现此类需求. 下面的看板示例,包含一个柱状图.一个饼图和一个地图,用户可以通过看板表 ...
- mongo重启、远程连接
1.查看当前mongo启动进程 ps -ef | grep mongo 2.修改mongo启动远程连接配制文件 vi /etc/mongod.conf 将 bind_ip=127.0.0.1 这一行注 ...
- 【Azure 应用服务】"App Service"如何能判断自身网路没有问题?
问题描述 当创建了一个App Service服务后,如何能判断服务自身网络链路路没有问题? 如果是用VM,通常用Ping可以判断.但是"网站应用App Service" 的Kudu ...
- 2023 年值得一读的技术文章 | NebulaGraph 技术社区
在之前的产品篇,我们了解到了 NebulaGraph 内核及周边工具在 2023 年经历了什么样的变化.伴随着这些特性的变更和上线,在[文章]博客分类中,一篇篇的博文记录下了这些功能背后的设计思考和研 ...
- EFCore之命令行工具
介绍 EFCore工具可帮助完成设计数据库时候的开发任务,主要用于通过对数据库架构进行反向工程来管理迁移和搭建DbContext和实体类型.EFCore .NET命令行工具是对跨平台.NET Core ...
- 科技大厂、手机厂商、企服领域齐发力,手机智能体成AI Agent新趋势
AI Agent涌向移动终端,手机智能体势不可挡 还没搞清楚什么是AI Agent,手机Agent就已经横空出世 AIGC为何涌向移动端?背后有哪些逻辑?什么是手机智能体?一文看明白 科技大厂.手机厂 ...
- Codeforces Round 920 (Div. 3)(A~F)
目录 A B C D E F A 按题意模拟即可 #include <bits/stdc++.h> #define int long long #define rep(i,a,b) for ...
- 微信小程序直播,腾讯云直播+微信小程序实现实时直播
一:小程序代码端 小程序直播使用小程序组件 live-pusher 组件和live-player组件 首先开通直播权限 小程序开发工具内进行推流拉流都不会成功,所以需要使用两个手机进行推拉流测试: 1 ...