Java中的for循环示例

时间:2020-01-09 10:34:47  来源:igfitidea点击:

任何编程语言中的循环都用于重复执行代码块,直到满足终止循环的条件为止。在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();                   
	    }
	}
}

输出:

* 
    * * 
   * * * 
  * * * * 
 * * * * * 
* * * * * *