Java 中的循环结构非常强大,是控制程序执行流程的重要部分。让我们系统地讲解 Java 的三种基本循环结构,带你全面掌握它们的用法、区别和技巧!🚀


Java循环结构

1️⃣ for 循环

for 循环是 Java 中最常用的循环之一,特别适合已知循环次数的场景。

语法结构:

1
2
3
for (初始化表达式; 循环条件; 更新表达式) {
// 循环体
}

执行顺序:

  1. 初始化表达式:在循环开始前执行一次,只执行这一次。
  2. 循环条件:在每次循环前判断是否执行循环体。条件为 true 执行,为 false 停止。
  3. 循环体:条件为 true 时执行。
  4. 更新表达式:每次循环结束后执行,然后回到条件判断。

示例:打印 0 到 4 的数字

1
2
3
4
5
6
7
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("当前数字: " + i);
}
}
}

输出:

1
2
3
4
5
当前数字: 0
当前数字: 1
当前数字: 2
当前数字: 3
当前数字: 4

增强型 forfor-each 循环)

专门用于遍历数组或集合。简洁直观,不需要下标操作。

1
2
3
4
5
6
7
8
public class ForEachExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println("数字: " + num);
}
}
}

2️⃣ while 循环

while 循环适合不确定循环次数但需要满足条件才执行的场景。

语法结构:

1
2
3
while (条件表达式) {
// 循环体
}

执行顺序:

  1. 先判断条件true 则执行循环体,false 停止循环。
  2. 每次循环后,返回条件表达式继续判断。

示例:打印 0 到 4 的数字

1
2
3
4
5
6
7
8
9
public class WhileLoopExample {
public static void main(String[] args) {
int i = 0;
while (i < 5) {
System.out.println("当前数字: " + i);
i++; // 别忘了更新变量,防止死循环!
}
}
}

3️⃣ do-while 循环

do-while 循环与 while 类似,但至少会执行一次循环体。

语法结构:

1
2
3
do {
// 循环体
} while (条件表达式);

执行顺序:

  1. 先执行一次循环体
  2. 然后判断条件,true 则继续执行,false 停止。

示例:至少执行一次的循环

1
2
3
4
5
6
7
8
9
public class DoWhileExample {
public static void main(String[] args) {
int i = 10;
do {
System.out.println("当前数字: " + i);
i++;
} while (i < 5); // 虽然条件不满足,但仍然执行了一次!
}
}

输出:

1
当前数字: 10

4️⃣ 控制循环的关键字

break:提前结束循环

1
2
3
4
5
6
7
for (int i = 0; i < 10; i++) {
if (i == 5) {
System.out.println("遇到 5,结束循环");
break;
}
System.out.println(i);
}

输出:

1
2
3
4
5
6
0
1
2
3
4
遇到 5,结束循环

continue:跳过本次循环,继续下一次

1
2
3
4
5
6
7
for (int i = 0; i < 5; i++) {
if (i == 2) {
System.out.println("跳过 2");
continue;
}
System.out.println(i);
}

输出:

1
2
3
4
5
0
1
跳过 2
3
4

5️⃣ 循环嵌套

可以在一个循环中嵌套另一个循环,用于多维数据处理或复杂逻辑。

1
2
3
4
5
6
7
8
9
public class NestedLoopExample {
public static void main(String[] args) {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
System.out.println("i=" + i + ", j=" + j);
}
}
}
}

输出:

1
2
3
4
5
6
i=1, j=1
i=1, j=2
i=1, j=3
i=2, j=1
...
i=3, j=3

6️⃣ 小技巧 & 注意事项

  • for 循环更适合固定次数的循环。
  • whiledo-while 更适合不确定次数但需要基于条件的循环。
  • 别忘了在循环中更新变量,避免死循环!
  • 增强型 for-each 循环更加简洁,推荐用于遍历数组和集合。

7️⃣ 练习题

🧠 问题 1:用 for 循环打印 1 到 100 的偶数。

1
2
3
4
5
6
7
8
9
10
public class Print100 {
public static void main(String[] args){
for(int i = 1;i<=100;i++){
if (i%2 == 0){
System.out.println(i);
}
}
}
}

1
2
3
4
5
2
4
----------------
98
100

🧠 问题 2:用 while 循环求 1 到 100 的和。

1
2
3
4
5
6
7
8
9
10
11
public class sum100 {
public static void main(String[] args){
int i = 0 ,sum = 0;
while (i <= 100){
sum += i;
i++;
}
System.out.println(sum);
}
}

1
5050

🧠 问题 3:使用嵌套循环输出一个 5x5 的星号矩阵。

1
2
3
4
5
6
7
8
9
10
11
public class PrintMartrix {
public static void main(String[] args){
for (int i = 0;i<5;i++){
for (int k = 0;k<5;k++){
System.out.print("*");
}
System.out.println();
}
}
}

1
2
3
4
5
*****
*****
*****
*****
*****

有问题、练习答案、或者想更深入了解循环?欢迎来交流!🌱😊

来源:

  • Chatgpt-4o
  • 我的理解