for循环是Java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。在Java5以后新增了foreach语法,对这两种for循环形式做详细的介绍。
语法如下:
for(表达式1;表达式2;表达式3)
{
语句序列
}
表达式1:该表达式用于初始化循环控制变量,它只在循环开始时执行一次。
表达式2:循环条件表达式,它的类型为boolean,如果表达式的值为true就执行一次循环体。
表达式3:该表达式用于改变循环体变量的值。
for循环语句的流程如图1所示。
图1 for循环流程图
For循环的执行过程如下:
第一步:执行表达式1,完成某一变量的初始化工作;例如int i=0;
第二步:判断表达式2的值;例如i<100。若表达式2的值为true,则执行一次循环体;然后执行第三部,否则退出循环体结束For循环。
第三部:执行表达式3,这部分通常执行循环控制变量的修改。
第四步:跳转到第二部继续执行循环
例 在项目中创建类Circulate,在主方法中使用for循环来计算100以内(包括100),所有偶数之和。
public class Circulate {
public static void main(String args[]) {
int sum = 0; // 声明总和变量
for (int i = 0; i <= 100; i += 2) { // 定义for循环
sum += i; // 累加100以内的偶数
}
System.out.println("100以内的所有偶数之和为:" + sum);
}
}
运行结果如图2所示。
图2 运行结果
技巧:在编程时,有时会遇到使用for循环的特殊语法格式来实现无限循环,语法格式为:
for(;;){
循环体
}
对于这种无限循环可以通过break语句跳出循环,例如:
for(;;){
if(x <20)
break;
x++;
}
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大的方便。
语法如下:
for(元素变量x : 遍历对象obj){
引用了x的java语句;
}
foreach语句中的元素变量x,不必对其进行初始化,下面通过简单的例子来介绍foreach语句是怎样遍历一维数组的。
例 在项目中创建类Repetition,在主方法中定义一维数组,并foreach语句遍历该数组。
public class Repetition { // 创建类Repetition
public static void main(String args[]) { // 主方法
int arr[] = { 7, 10, 1 }; // 声明一维数组
System.out.println("一维数组中的元素分别为:"); // 输出信息
for (int x : arr)
{
System.out.println(x); foreach语句,int x引用的变量,arr指定要循环遍历的数组,最后将x输出
}
}
}
运行结果如图3所示。
图3 运行结果