Java中的for循环示例
任何编程语言中的循环都用于重复执行代码块,直到满足终止循环的条件为止。在Java中,有三种类型的loopswhile循环,do-while循环和for循环。在本文中,我们将介绍如何在Java中使用for循环。
Java for循环
在Java中,有两种形式的for循环。
- 传统for循环
- 增强的for循环(for-each循环)
传统for循环的语法如下:
for(initialization; condition; increment\decrement) { // body }
在循环中执行的代码块用花括号括起来。如果在for循环中只需要执行一条语句,则花括号是可选的。
Java for循环执行流程
下图显示了for循环的执行流程。
1.初始化– for循环的执行开始时,第一步是初始化,初始化仅在开始时执行一次。初始化步骤通常用于设置控制for循环的变量的初始值。此变量以后在循环的增量\减量步骤中递增或者递减。
2.条件-条件是在每次迭代中评估的布尔表达式。如果condition为true,则执行循环体;如果condition为false,则循环终止。
3.递增\递减–在此步骤中,控制循环的变量递增或者递减。
Java for循环示例
1第一个示例使用for循环打印从1到10的数字。
public class ForLoopExample { public static void main(String[] args) { for(int i = 1; i <=10; i++){ System.out.println("Value- " + i); } } }
输出:
Value- 1 Value- 2 Value- 3 Value- 4 Value- 5 Value- 6 Value- 7 Value- 8 Value- 9 Value- 10
1首先,将变量声明并初始化为1.
2条件(i <= 10)在每次迭代中求值,直到i的值小于或者等于10为止,它返回true。当i的值大于10且循环终止时,条件的求值为false。
3 for循环的第三部分增加控制变量。
在for循环的下一次迭代中,由于初始化仅发生一次,因此仅执行和。
我们可以在代码中看到变量声明和初始化(int i = 0)都发生在for循环中。这样声明,变量的范围在循环中受到限制。
2第二个示例使用for循环以10到1的相反顺序打印数字。
public class ForLoopExample { public static void main(String[] args) { for(int i=10; i>0; i--){ System.out.println("Value- " + i); } } }
输出:
Value- 10 Value- 9 Value- 8 Value- 7 Value- 6 Value- 5 Value- 4 Value- 3 Value- 2 Value- 1
3使用循环将数字1到20相加。
public class ForLoopExample { public static void main(String[] args) { int sum = 0; for(int i=1; i<=20; i++) sum = sum + i; System.out.println("Sum is- " + sum); } }
输出:
Sum is- 210
我们可以看到此处未使用花括号,因为在for循环中只有一个语句时,花括号是可选的。
4到目前为止,所有示例在循环语句中都使用了for循环的所有三个部分,但是for循环在初始化和递增/递减部分方面很灵活。
public class ForLoopExample { public static void main(String[] args) { int i = 0; for(; i<5; ){ System.out.println("Hello"); i++; } } }
输出:
Hello Hello Hello Hello Hello
在代码中,初始化和递增/递减部分都移出了循环语句。请注意,我们仍然需要为它们加上分号。
Java中的for-each循环(增强循环)
从Java 5开始,还有另一个for循环版本,称为for-each循环或者增强的for循环。
增强的for循环用于迭代对象的集合,例如数组,列表或者顺序设置。
for-each循环的语法如下:
for(type var : collection){ //body }
这里的type指定集合中元素的类型。
var是在每次迭代中分配给集合中下一个元素的变量。
collection指定要迭代的collection。
Java for-each循环示例
1使用for-each迭代数组并获取数组中所有元素的总和。
public class ForEachDemo { public static void main(String[] args) { int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int sum = 0; for(int num: nums) { sum = sum + num; } System.out.println("Sum of the elements- " + sum); } }
输出:
Sum of the elements- 55
在代码中,在for-each循环num变量的每次迭代中,都为数组nums分配了下一个元素。
2迭代字符串数组列表并显示值。
public class ForEachDemo { public static void main(String[] args) { List<String> names = new ArrayList<String>(); names.add("Toronto"); names.add("Montreal"); names.add("Ottawa"); names.add("Vancouver"); //iterating ArrayList for(String name: names) { System.out.println("Name- " + name); } } }
输出:
Name- Toronto Name- Montreal Name- Ottawa Name- Vancouver
嵌套循环
与大多数编程语言一样,在Java中,for循环可以嵌套。因此,我们可以在另一个内部包含一个for循环。在外部for循环的每次迭代的嵌套循环中,迭代内部for循环,直到不满足内部for循环中的条件。
例如,以下程序使用嵌套的for循环打印金字塔图案。
public class NestedLoop { public static void main(String[] args) { int rows = 6; for(int i = 1; i <= rows; i++){ for(int j = 0; j < rows - i; j++) System.out.print(" "); for(int k = 0; k < i; k++){ System.out.print("* "); } System.out.println(); } } }
输出:
* * * * * * * * * * * * * * * * * * * * *