本文共 2125 字,大约阅读时间需要 7 分钟。
作者:CHAITANYA SINGH
来源:
循环用于反复执行同一组语句,直到满足特定条件为止。在Java中,我们有三种类型的基本循环:for、while和do-while。在本教程中,我们将学习如何在Java中使用for循环(for loop)。
for循环的语法:
for(初始化initialization; 循环条件condition; 递增/递减increment/decrement){ statement(s);}for循环的执行流程
当程序在运行的时候,解释器一直在跟踪要执行的语句,我们称之为控制流,或者程序的执行流程。
第一步:在for循环中,首先进行初始化,在整个for循环中,初始化部分的语句只在开始的时候执行一次。
第二步:在每次迭代时评估for循环中的条件,如果条件为true(真)则执行循环体内的语句。一旦条件返回false(假),for循环中的语句就不会执行,程序就跳到for循环外面的语句上运行。
第三步:每次执行for循环体后,程序回头执行for循环的递增/递减部分,更新循环计数器。
第四步:第三步后,程序跳转到第二步,重新评估循环条件,决定是继续执行在for循环内部的语句还是跳出for循环执行后面的语句。
简单for循环示例
class ForLoopExample { public static void main(String args[]){ for(int i=10; i>1; i--){ System.out.println("The value of i is: "+i);}}}输出:
The value of i is: 10The value of i is: 9The value of i is: 8The value of i is: 7The value of i is: 6The value of i is: 5The value of i is: 4The value of i is: 3The value of i is: 2在上面的程序中:
int i = 1是初始化表达式;i > 1是否继续循环的条件(布尔表达式,满足条件就继续循环,不满足条件就跳出循环);i-是递减操作
死循环
循环条件的布尔表达式和递增/递减运算之间的互相协调非常重要,现在让我们来看看下面这个例子:
class ForLoopExample2 { public static void main(String args[]){ for(int i=1; i>=1; i++){ System.out.println("The value of i is: "+i);}}}这是一个死循环,我们初始化里给变量i赋值为1,循环条件是i>=1,因为i的值是1,后面的递增运算i++只能让变量i的值越来越大,所以这个循环条件i>=1永远都不会返回false。这最终会导致死循环条件。因此可见,增量/递减操作的结果必须是能确保在某个时间点上,循环条件的返回值为false,这样程序才可以跳出这个for循环。
下面是另一个for循环的死循环的例子:
// infinite loopfor ( ; ; ) { // statement(s)}用for循环遍历数组(array)的例子:
在这里,我们使用for循环遍历和显示数组里面的每个元素。class ForLoopExample3 { public static void main(String args[]){ int arr[]={2,11,45,9};//i starts with 0 as array index starts with 0 toofor(int i=0; i<arr.length; i++){ System.out.println(arr[i]);}}}输出:
211459增强型for循环
当您想要遍历数组/集合里面的每个元素时,增强型的for循环很有用,非常易于编写和理解。
让我们采用上面编写的相同示例,并使用增强型for循环来重写它。class ForLoopExample3 {
public static void main(String args[]){ int arr[]={2,11,45,9};for (int num : arr) { System.out.println(num);}}}输出:
211459注:在上面的示例中,我在增强型的for循环中将变量num的数据类型声明为int(整数型)。我们将根据数组的数据类型来决定如何声明这个变量的数据类型。例如,String类型的增强型for循环需要将这个变量声明为String,如下所示:
String arr[]={"hi","hello","bye"};
for (String str : arr) { System.out.println(str);}转载于:https://blog.51cto.com/14274841/2395398