java[3]流程控制for循环

for 语句是应用最广泛、功能最强的一种循环语句。一般格式如下:
for (初始化; 循环条件; 迭代) {
    语句组
}

for 语句执行流程如图 7-1 所示,首先会先执行初始化语句,它的作用是初始化循环变量和其他变量,然后程序会判断循环条件是否满足,如果满足,则继续执行循环体并计算迭代语句,之后再判断循环条件,如此反复,直到判断循环条件不满足时跳出循环。


以下示例代码是计算 1~9 的平方表程序:
System.out.println("---------");
for (int i = 1; i < 10; i++) {
    System.out.printf("%d x %d = %d", i, i, i * i);
    //
打印一个换行符,实现换行
    System.out.println();
}
输出结果如下:
---------
1 x 1 = 1
2 x 2 = 4
3 x 3 = 9
4 x 4 = 16
5 x 5 = 25
6 x 6 = 36
7 x 7 = 49
8 x 8 = 64
9 x 9 = 81
在这个程序的循环部分初始时,给循环变量 i 赋值为 1,每次循环都要判断 i 的值是否小于 10,如果为 true,则执行循环体,然后给 i 1。因此,最后的结果是打印出 1~9的平方,不包括 10
提示 初始化、循环条件以及迭代部分都可以为空语句(但分号不能省略),三者均为空的
时候,相当于一个无限循环。 代码如下:

for (; ;) {
...
}
另外, 在初始化部分和迭代部分,可以使用逗号语句来进行多个操作。逗号语句是用逗号分隔的语句序列, 如下程序代码所示:
int x;
int y;
for (x = 0, y = 10; x < y; x++, y--) {
System.out.printf("(x,y) = (%d, %d)", x, y);
//
打印一个换行符,实现换行
System.out.println();
}
输出结果如下:
(x,y) = (0,10)
(x,y) = (1,9)
(x,y) = (2,8)
(x,y) = (3,7)
(x,y) = (4,6)

for - each语句

Java 5 之后提供了一种专门用于遍历集合的 for 循环——for-each 循环。使用 for-each循环不必按照 for 的标准套路编写代码,只需要提供一个集合就可以遍历。
假设有一个数组,采用
for 语句遍历数组的方式如下:
// 声明并初始化int数组
int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };
System.out.println("----for-------");
// for
语句
for (int i = 0; i < numbers.length; i++) {
System.out.println("Count is:" + numbers[i]);
}
上述语句 int[] numbers = { 43, 32, 53, 54, 75, 7, 10 }声明并初始化了 10 个元素数组集合, 目前大家只需要知道当初始化数组时,要把相同类型的元素放到{…}中并且用逗号分隔(,)即可, 关于数组集合会在后面第 8 章详细介绍。 numbers.length 是获得数组的长度, length 是数组的属性, numbers[i]是通过数组下标访问数组元素。
那么采用
for-each 循环语句遍历数组的方式如下:
// 声明并初始化int数组
int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };
System.out.println("----for each----");
// for-each
语句
for (int item : numbers) {
    System.out.println("Count is:" + item);
}
从示例中可以发现, item 不是循环变量,它保存了集合中的元素,的 for-each 语句将集合中的元素一一取出来,并保存到 item 中,这个过程中不需要使用循环变量,通过数组下标访问数组中的元素。可见 for-each 语句在遍历集合的时候要简单方便得多。

猜你喜欢

转载自blog.csdn.net/qq_38125626/article/details/80997204