详解for循环的格式

温柔似野鬼°
839次浏览
2021年01月28日 20:19
最佳经验
本文由作者推荐

争先恐后打一字-固执反义词

2021年1月28日发(作者:huahua)

J2SE
1.5
提供了另一种形式的
for
循环。借助 这种形式的
for
循环,可以用更简单地方式
来遍历数组和
Collecti on
等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行
定义能被这样遍历的类, 并解释和这一机制的一些常见问题。







Java
程序中,


逐一处理
”?D?D
或者 说,

遍历
”?D?D
某一个数组或
Collection
中的
元素的时候,一般会使用一个
for
循环来实现(当然,用其它种类的循环也不是 不可以,只
是不知道是因为
for
这个词的长度比较短,还是因为
for这个词的含义和这种操作比较配,
在这种时候
for
循环比其它循环常用得多)< br>。






对于遍历数组,这个循环一般是采取这样的写法:






清单
1
:遍历数组的传统方式



/*
建立一个数组

*/


int[] integers = {1, 2, 3, 4};


/*
开始遍历

*/


for (int j = 0; j <

; j++) {




int i = integers[j];




n(i);


}





而对于遍历
Collection
对象,这个循环则通常是采用这样的形式:






清单
2
:遍历
Collection
对象的传统方式



/*
建立一个
Collection */


String[] strings = {


Collection stringList = (strings);


/*
开始遍历

*/


for (Iterator itr = or(); t();) {




Object str = ();




n(str);


}





而在
Java
语言的最新版本
?D?DJ2SE
1.5
中,引入了另一种形式的
for
循环。借助这种
形式的
for
循环,现在可以用一种更简单地方式来进行遍历的工作。






1.
第二种
for
循环



不严格的说,
Java
的第二种
for
循环基本是这样的格式:






for (
循环变量类型

循环变量名称

:
要被遍历的对象
)
循环体






借助这种语法,遍历一个数组的操作就可以采取这样的写法:






清单
3
:遍历数组的简单方式



/*
建立一个数组

*/
























































































int[] integers = {1, 2, 3, 4};
/*
开始遍历

*/
for (int i : integers) {


n(i);/*
依次输出
“1”< br>、
“2”

“3”

“4” */

}

这里所用的
for
循环,会在编译期间被看成是这样的形式:


清单
4
:遍历数组的简单方式的等价代码

/*
建立一个数组

*/
int[] integers = {1, 2, 3, 4};
/*
开始遍历

*/
for (int
变量名甲

= 0;
变量名甲

<

;
变量名甲
++) {


n(integers[
变量名甲
]);/*
依次输出
“1”
“2”

“3”

“4” */

}

这里的

变量名甲

是一个由编译器自动生成的不会造成 混乱的名字。


而遍历一个
Collection
的操作也就可以采用这样的写法:


清单
5
:遍历
Collection
的简单方式

/*
建立一个
Collection */
String[] strings = {
Collection list = (strings);
/*
开始遍历

*/
for (Object str : list) {


n(str);/*
依次输出
“A”

“B ”

“C”

“D” */

}

这里所用的
for
循环,则会在编译期间被看成是这样的形式:


清单
6
:遍历
Collection
的简单方式的等价代码

/*
建立一个
Collection */
String[] strings = {
Collection stringList = (strings);
/*
开始遍历

*/
for (Iterator
变量名乙

= or();
变量名乙
.hasNext();) {


Object str =
变量名乙
.next();


n(str);/*
依次输出
“A”

“B ”

“C”

“D” */

}

这里 的

变量名乙

也是一个由编译器自动生成的不会造成混乱的名字。


因为在编译期间,
J2SE 1.5
的编译器会把这种形式的
for
循环,
看成是对应的传统形式,

争先恐后打一字-固执反义词


争先恐后打一字-固执反义词


争先恐后打一字-固执反义词


争先恐后打一字-固执反义词


争先恐后打一字-固执反义词


争先恐后打一字-固执反义词


争先恐后打一字-固执反义词


争先恐后打一字-固执反义词