Java 循环

30 阅读3分钟

当处理重复性任务时,Java 提供了四种常用的循环结构,它们分别是 while 循环、do-while 循环、for 循环和 for-each 循环。下面将详细介绍这四种循环的特点和用法。

循环

while 循环

while 循环是最基本的循环结构之一,它用于在满足指定条件时重复执行代码块。在每次循环开始前,先检查条件是否为真(true),若条件为真则执行循环体,然后再次检查条件,如此循环进行,直到条件变为假(false)为止。

语法

while (条件) {
    // 循环体
}

代码示例

public class WhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 5) {
            System.out.println(i);
            i++;
        }
    }
}

代码运行结果:

1
2
3
4
5

do-while 循环

do while 循环是另一种基本的循环结构,与while循环不同的是,do while 先执行循环体,然后再检查条件是否为真。因此,do while 循环至少会执行一次循环体,即使初始条件不满足也是如此。

语法

do {
    // 循环体
} while (条件);

代码示例

public class DoWhileLoopExample {
    public static void main(String[] args) {
        int j = 1;
        do {
            System.out.println(j);
            j++;
        } while (j <= 5);
    }
}

代码运行结果:

1
2
3
4
5

for 循环

for 循环是用于重复执行一个已知次数的循环体,或者在满足条件时重复执行。它的控制结构允许你初始化、测试条件和迭代的三个表达式都放在一行内。

语法

for (初始化; 条件; 增量) {
    // 循环体
}

代码示例

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
    }
}

代码运行结果:

1
2
3
4
5

for-each 循环

for-each 循环,也称为增强型 for 循环,是专门用于遍历数组或集合的循环结构。它在不需要访问索引的情况下就可以访问数组或集合中的每个元素。 语法

for (数据类型 元素 : 数组/集合) {
    // 循环体
}

代码示例

public class ForEachLoopExample {
    public static void main(String[] args) {
        // int [] 这是一种数组结构,用来存储多个连续的数据,后续会讲到
        int[] numbers = {1, 2, 3, 4, 5};
        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

代码运行结果:

1
2
3
4
5

循环流程控制语句

在循环中,控制语句 break 和 continue 用于更加精准地控制循环的执行流程。

break

break 语句用于强制退出循环。

代码示例:

public class LoopBreakExample {
    public static void main(String[] args) {
        // 使用break在for循环中跳出循环
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                break; // 当 i 等于 5 时跳出循环
            }
            System.out.println(i);
        }
    }
}

代码运行结果:

1
2
3
4

continue

continue 语句用于跳过当前循环的剩余代码,直接进入下一次循环的条件判断。

代码示例:

public class LoopContinueExample {
    public static void main(String[] args) {
        // 使用continue在for循环中跳过偶数
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue; // 当 i 为偶数时跳过当前循环的剩余代码,直接进行下一次循环迭代
            }
            System.out.println(i);
        }
    }
}

代码运行结果:

1
3
5
7
9