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 循环的更多相关文章

  1. Java程序设计基础笔记 • 【第5章 循环结构】

    全部章节   >>>> 本章目录 5.1 while循环结构 5.1.1 循环简介 5.1.2 while循环 5.1.3 while循环的使用 5.1.4 while循环的注 ...

  2. 九天学会Java,第四天,循环结构

    变量和数据类型,赋值和输出 算术运算 选择结构 循环结构 函数定义,函数调用 变量作用域 栈,程序运行的基石 面向对象 异常处理 语言提供的公用包 这次我们讲Java的循环结构.循环结构在编程中广泛使 ...

  3. 四、 java循环结构

    for循环结构: 格式:①初始化条件;②循环条件;③迭代条件;④循环体 for(①;②;③){ //④ } 执行过程:①-②-④-③-②-④-③-...-④-③-②,直至循环条件不满足,退出当前的循环 ...

  4. java 基本语法(五) 流程控制(二) 循环结构

    1.循环结构的四要素① 初始化条件② 循环条件 --->是boolean类型③ 循环体④ 迭代条件说明:通常情况下,循环结束都是因为②中循环条件返回false了. 2.三种循环结构:2.1 fo ...

  5. 7、Java 循环结构

    本章讲解一下Java中常见的三种循环结构,顺序结构的程序语句只能 被执行一次.使用循环可以解决我们多个常量或者变量的同一类的操作或者更加复杂的操作. 循环 循环结构有三大类: 1.for循环:确定循环 ...

  6. Java中的循环结构(二)

    循环结构(二) 学习本章有道的单词: rate:速度,比率 young:年轻的,年少 schedule:时间表,调度 neggtive:消极的;否定 customer:顾客,观众 birthday:生 ...

  7. 深度理解PHP中for与foreach两个循环结构遍历数组的区别

    遍历一个数组是编程中最常见不过的了,这里讨论下for和foreach两种方法: 首先,我们先准备两个用于遍历的数组: $arr1=array(1=>'a', 3=>22, 5=>'b ...

  8. java 基础 03 运算符 分支结构 循环结构

    今天内容: (1)运算符 (2)分支结构 (3)循环结构 1运算符 1.1赋值运算符 (1)简单赋值 = 表示赋值运算符,用于将=右边的数据赋值给=左边的变量来覆盖原来的数值. 笔试题: ia == ...

  9. Java中的循环结构

    1.while循环结构 语法: while(循环条件){ //循环操作 } while循环结构流程图: 举例: int i = 1; while(i <= 100){ System.out.pr ...

  10. Java 内存结构备忘录

    本文详细描述了 Java 堆内存模型,垃圾回收算法以及处理内存泄露的最佳方案,并辅之以图表,希望能对理解 Java 内存结构有所帮助.原文作者 Sumith Puri,本文系 OneAPM 工程师编译 ...

随机推荐

  1. J-link虚拟串口波特率异常问题

    J-LINK V9以上自带了虚拟串口,使用非常方便. 但最近遇到问题,发现打开虚拟串口时电脑接收到的是乱码.到官网搜索了一下,发现最高波特率是115200,我使用的是256000,于是降低波特率. 官 ...

  2. 【Azure Function App】在ADF(Azure Data Factory)中调用 Azure Function 时候遇见 Failed to get MI access token

    问题描述 在ADF(Azure Data Factory)中,调用Azure Function App中的Function,遇见了 Failed to get MI access token Ther ...

  3. 为什么HashMap的键值可以为null,而ConcurrentHashMap不行?

    写在开头 昨天在写<HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!>这篇文章的时候,漏了一个知识点,知道晚上吃饭的时候才凸显想到,关于Concur ...

  4. 为什么带NOLOCK的查询语句还会造成阻塞

    背景 客户反映HIS数据库在11点出现了长时间的阻塞,直到手动KILL掉阻塞的源头.请我们协助分析原因,最终定位到.NET程序中使用的SqlDataReader未正常关闭导致. 现象 登录SQL专家云 ...

  5. redis开启多端口

    Centos安装多端口的redis服务 背景 redis默认端口6379,由于开发需要,key有重复.于是另起端口6380. 配置服务过程 1.新建/etc/redis6380.conf,内容如下: ...

  6. gyroflow.xyz - 视频防抖 支持相机 gopro 不支持手机视频 - 软件推荐

    gyroflow.xyz - 视频防抖 支持相机 gopro 不支持手机视频 - 软件推荐 https://gyroflow.xyz/ https://github.com/gyroflow/gyro ...

  7. STM32 USB协议和代码分析

    一 前言: usb接口是一个非常重要的通信接口,它的协议是有些复杂的.作为一个工程师,对usb协议和代码进行分析,是一个必备的素质和技能.最近一个项目用到了USB存储接口,花了不少时间把项目做完之后, ...

  8. 在salesforce中如何获取Security Token

    Trailhead练习Soap API使用Soap UI时,需要Security Token才能登录,在Lightning一直找不到,后来切换到Classic才找到.现在提供一个简单粗暴的方式,快速定 ...

  9. 12_采样格式&音频重采样

    采样格式 通过前面学习我们知道FFmpeg和SDL都有自己的采样格式的表达式,那么他们都表示什么意思呢? FFmpeg的采样格式的表达式: enum AVCodecID { ...... AV_COD ...

  10. 一个简单的RTMP服务器实现 --- RTMP与FLV

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...