在Java中,有三种主要的循环结构:for循环、while循环和do-while循环。
-
for循环(已知循环次数): for循环是最常用的循环结构,它允许你指定循环次数。for循环有三个部分:
- 初始化语句:在循环开始之前执行一次,用于初始化变量。
- 循环条件:在每次循环开始之前判断条件是否成立,如果条件为真,则继续执行循环体内的代码;如果条件为假,则跳出循环。
- 循环迭代:在每次循环结束之后执行,用于改变控制条件所涉及的变量的值。
示例:
for (int i = 0; i < 10; i++) { System.out.println(i); }
-
while循环: while循环在循环开始之前先判断条件是否成立,只有条件为ture时,才会执行循环体内的代码。while循环只有循环条件部分,没有初始化语句和循环迭代部分,所以需要在循环体内手动改变控制条件所涉及的变量的值,以避免死循环。
示例:
int i = 0; while (i < 10) { System.out.println(i); i++; }
-
do-while循环(使用较少): do-while循环与while循环类似,也是先判断条件是否成立,但它的判断条件是在循环体执行完之后进行的,所以do-while循环至少会执行一次循环体内的代码。
示例:
int i = 0; do { System.out.println(i); i++; } while (i < 10);
基础学会后接下来是一些进阶的循环技巧和概念。
-
嵌套循环:可以在一个循环内部嵌套另一个循环。这在处理多维数组、打印图形等情况下非常有用。
for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { System.out.print(j + " "); } System.out.println(); }
这段代码会输出一个如下的图形:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
-
跳出循环:有时候我们希望在满足某个条件时跳出循环,可以使用
break
关键字。这样的关键词还有三个,分别是:break,return,continye.后面会说说他们的区别和共同点 -
int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; if (sum > 20) { break; } } System.out.println(sum);
这段代码会计算前n个整数的和,直到和大于20时跳出循环。
-
跳过迭代:当我们不想执行某些特定的迭代,可以使用
continue
关键字。for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; } System.out.println(i); }
这段代码会输出所有的奇数。
-
循环控制变量:循环控制变量是循环中用于控制循环的变量。我们可以通过改变循环控制变量的值来控制循环的执行。
for (int i = 0, j = 10; i < j; i++, j--) { System.out.println(i + " " + j); }
这段代码会输出
0 10 1 9 2 8 3 7 4 6 5
。 -
forEach循环:Java 5引入了
forEach
循环,可以更方便地遍历数组和集合。int[] nums = {1, 2, 3, 4, 5}; for (int num : nums) { System.out.println(num); }
这段代码会输出数组中的每一个元素。
-
三个关键词
-
break
关键字用于跳出循环,当某个条件满足时,可以使用break
终止当前的循环,进入循环后面的代码。 -
return
关键字用于结束方法的执行,并返回一个值(如果有返回值的话)。当遇到return
关键字时,会立即终止当前方法的执行,返回到调用该方法的地方。 -
continue
关键字用于跳过本次循环的剩余代码,直接开始下一次循环的执行。当执行到continue
关键字时,会跳过本次循环体中continue
语句后面的代码,继续下一次循环的执行。