深入理解 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 工程师编译 ...
随机推荐
- 【Azure 云服务】云服务(经典) 迁移至云服务(外延支持) 的相关疑问
问题描述 根据微软官方文档说明,云服务(经典)已弃用.所以关于它有以下的一些疑问: 一:迁移时候的停机时间问题? 二:云服务(经典) 与 云服务(外延支持) 的区别是什么? 三:注意事项有那些呢?如 ...
- 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)
问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...
- 【Azure 事件中心】使用Kafka消费Azure EventHub中数据,遇见消费慢的情况可以如何来调节呢?
问题描述 使用Kafka消费Azure EventHub中数据,遇见消费慢的情况可以如何来调节呢? 问题解答 查看Kafka Consumer的配置参数,其中最只要的一个参数为:max.poll.re ...
- mysql-查询库中所有表名称或者某一张表的所有字段名称
-- 查询某一库中所有表的名称, SELECT a.TABLE_SCHEMA ,a.TABLE_NAME ,a.TABLE_COMMENT FROM information_schema.TABLES ...
- MySQL日志15连问,redo log与biglog
1. redo log是什么? 为什么需要redo log? redo log 是什么呢? redo log 是重做日志. 它记录了数据页上的改动. 它指事务中修改了的数据,将会备份存储. 发生数据库 ...
- 使用 Docker 部署 File Browser 文件管理系统
1)File Browser 介绍 官网:https://filebrowser.org/ GitHub:https://github.com/filebrowser/filebrowser 今天为大 ...
- npm pack - npm install .tgz 离线安装 前端开发环境
npm pack - npm install .tgz 离线安装 前端开发环境 为什么有这个需求 曾经出差,到一个机构里面,里面是局域网,没有外网.后台都是java,刻录个光盘,然后就把开发环境装好了 ...
- 1.JAVA中的几种基本数据类型是什么,各自占用多少字节
1.JAVA中的几种基本数据类型是什么,各自占用多少字节 基本类型 大小 最小值 最大值 默认值 byte(位) 8bits = 1字节 -128 127 0 short(短整数) 16bit = 2 ...
- 使用pymysql库,将tushare股票信息保存入本地MySQL数据库
使用pymysql库,将tushare股票信息保存入本地MySQL数据库 1.前言 由于tushare存在积分权限限制,高频读取tushare数据容易挤占服务器带宽,因此对于常用的tushare数据, ...
- python 创建文件夹并写入文件源码
废话就不多少说了,直接上源码吧. import time import os folder = os.getcwd() folder = folder + '/test/' print(folder) ...