深入理解 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 工程师编译 ...
随机推荐
- java个人博客
效果浏览 首页 详情页 Aboutme 后台管理 管理/添加博客 添加分类 管理员管理 友情链接 访问地址 前台地址http://localhost 后台地址:http://localhost/adm ...
- golang中关于map的value类型定义为函数类型时(方法值)的一点点思考
文章的内容仅仅是自己关于map的value类型定义为函数类型时的一点点思考,如有不对的地方,请不吝赐教. 学习过后才知道叫做 方法值. 1.起因 最近在看老项目代码时,看到了一段类似于下面的定义,最开 ...
- 在 C++ 项目中,通过源码使用 PaddlePaddle 实现 OCR 功能
My-PaddleOCR 介绍 如何在 C++ 项目中,通过源码使用 PaddlePaddle 实现 OCR 功能. 本项目的所有源码:gitee: paddleocr 目前,官方提供使用 Paddl ...
- 【Azure 服务总线】Azure.Messaging.ServiceBus 多次发送消息报超时错误,是否可以配置重新发送?是否有内置重试机制?
问题描述 使用 Azure Service Bus,提供应用程序之间松耦合的消息交换,但是有时候发送消息多次出现超时错误. A connection attempt failed because th ...
- 【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
问题描述 使用Flask框架部署Python代码,如何访问其中的静态文件呢?如static问价夹中的图像资源,同时如何在代码中读取txt文件中的内容呢?是相对路径或者是绝对路径呢? 实验步骤 在App ...
- FolkMQ 作个简单的消息中间件(最简单的那种), v1.3.1 发布
功能简介 角色 功能 生产端(或发起端) 发布消息.定时消息(或叫延时).顺序消息.可过期消息.事务消息.发送消息(rpc)支持 Qos0.Qos1 消费端(或接收端) 订阅.取消订阅.消费-ACK( ...
- 我的闲鱼Python爬虫接单总结和经验,最高600元一单
最近,我在闲鱼上利用 Python 爬虫技术接了一些任务,想必你一定好奇,通过这样的方式,到底能不能挣钱,能挣多少钱?今天我就来分享一下我的经验和总结. 一.接单经历 之前 Vue 的作者尤大在微博上 ...
- 【EasyExcel详细步骤】(内附源码)
页面预览 数据导出 数据导入 第01章-Alibaba EasyExcel 1.EasyExcel介绍 1.1.EasyExcel的作用 数据导入:减轻录入工作量 数据导出:统计信息归档 数据传输:异 ...
- STM32 SPI DMA 源码解析及总结
一 前言 最近在调试stm32的SPI时候i,遇到了一个非常诡异的问题.中间花费了不少时间才把问题搞定.这中间暴露的问题值得反思.借此机会,还是梳理一下stm32的SPI的代码做一个总结吧. 二 初始 ...
- STM32进入HardFault_Handler的调试方法
在编写STM32程序代码时由于自己的粗心会发现有时候程序跑着跑着就进入了 HardFault_Handler中断,按照经验来说进入HardFault_Handler故障的原因主要有两个方面: 1:内存 ...