黑马程序员技术交流社区
标题:
高级for循环
[打印本页]
作者:
李晓斌
时间:
2011-12-22 18:05
标题:
高级for循环
本帖最后由 李晓斌 于 2011-12-23 09:49 编辑
高级for循环不是太懂,能把原理解释一下嘛。
File dir = new File("d:\\java\\day20");
for(String name:str)
{
System.out.println(name);
}
另外,像上面代码中定义了局部变量name,这样的话,外部就不能调用该变量了,该如何处理呢?还有高级for循环怎么转换成普通的for循环呢?求教
作者:
陈帅雷
时间:
2011-12-22 18:13
本帖最后由 陈帅雷 于 2011-12-22 18:16 编辑
语法:
for ( type 变量名:集合变量名 ) { … }
注意事项:
迭代变量必须在( )中定义!
集合变量可以是数组或实现了Iterable接口的集合类
for(String name:str)
{
System.out.println(name);
}
如果str为字符数组的话,转化为普通for循环
for(int i=0; i<str.size(); i++)
{
System.out.println(str
);
}
作者:
杨旭
时间:
2011-12-22 18:21
本帖最后由 杨旭 于 2011-12-22 18:29 编辑
public class Text01{
public static void main(String[] args) {
String []str = new String[]{"zxx","lhm","flx"};
//普通循环
for (int i = 0; i < str.length; i++) {
String name = str[i];
System.out.println(name);
}
//增强for循环
for(String name:str){
System.out.println(name);
}
}
}
复制代码
public class Text02{
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("zxx");
list.add("lhm");
list.add("flx");
// 根据集合类长度遍历
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
// 根据迭代器遍历
for(Iterator i = list.iterator();i.hasNext();){
System.out.println(i.next());
}
// 根据增强for循环遍历
for(String element : list){
System.out.println(element);
}
}
}
复制代码
作者:
黑马巩伟伟
时间:
2011-12-22 18:53
这是JAVA1.5 增强的for 循环的新特性。。(enhanced for loop)
所谓“增强的for 循环”,主要也是针对容器的。使用该项特性时,开发者可以将“利用iterator
遍历容器”的逻辑交给编译器来处理。例如下列代码:
void cancelAll(Collection c) {
for (Iterator i = c.iterator(); i.hasNext(); ) {
TimerTask tt = (TimerTask) i.next();
tt.cancel();
}
}
可以用增强的for 循环改写为:
void cancelAll(Collection c) {
for (Object o : c)
((TimerTask)o).close();
}
作者:
黑马巩伟伟
时间:
2011-12-22 18:56
既然是局部变量,那当然是只能在规定的范围内使用。所谓局部变量就是在一个方法内定义供该方法使用的变量,自然外部是访问不到的,如果非要外部访问,不防把它定义为全局的。
作者:
王昌盛
时间:
2011-12-22 20:18
for(String name:str)
{
System.out.println(name);
}
相当于 普通for循环
for(int i = 0;i<str.length;i++){
String name = str[i];
System.out.println(name);
高级for循环中定义的变量,外部不能使用,循环结束便成了垃圾
}
作者:
刘旭
时间:
2011-12-22 21:19
int []a={4,3,5,7};
for(int x:a) //定义一个int x的变量,用以存放从a中取出的int型数据。当循环时,依次从a中取出数据,赋值给x,然后再打印
{
System.out.println(x);
}
作者:
lucky_xingxing
时间:
2011-12-22 21:27
这种for循环是专门用来迭代 集合和数组的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2