A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马斯巴达 高级黑马   /  2013-1-26 13:07  /  1923 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-1-27 14:16 编辑
  1. public static void listDemo()
  2.         {
  3.                 File f = new File("c:\\abc.txt");

  4.                 String[] names = f.list();//调用list方法的file对象必须是封装了一个目录。该目录还必须存在。
  5.                 for(String name : names)
  6.                 {
  7.                         System.out.println(name);
  8.                 }
复制代码
String[] names = f.list();
for(String name : names)
{
System.out.println(name);
}
这几句具体是如何执行的。。 for中的String name什么作用和含义?

5 个回复

倒序浏览
执行的是,每次都names中取一个name就重新定义个String name 来保存   使你每次在for循环中用到name都不同
转换为一般for(){}是这样的
for(int i=0;i<names.length;i++){
String name=names[i];
}
表达式貌似是这样的
for(类名 变量名:集合<类名>){}
回复 使用道具 举报
这个增强for循环对数组names进行遍历,  for(String name :names){....}  

String name 只是声明了一个变量,类型是你操作的数组中的元素的类型,
names  就是要被遍历的目标

增强for循环有个局限性,就是只能执行取值操作,不能执行增删操作,执行时必须由被遍历的目标
回复 使用道具 举报
  1. for(int i=0;i<names.length;i++){
  2. String names=name[i];
  3. System.out.pringln(name[i]);
  4. }
复制代码
可以把它拆成这种形式,
string name,中的name只是一个临时变量,用来存放每次遍历的元素
System.out.println(name);//可以拆解为string names=name;systen.out.println(name)
回复 使用道具 举报
本帖最后由 黄金龙 于 2013-1-26 17:05 编辑

String[] names = f.list();
for(String name : names)
{
System.out.println(name);
}
name 就是一个引用 每一次都会指向names 对应的值...就只能做取出动作
回复 使用道具 举报
String[] names = f.list();
for(String name : names)
{
System.out.println(name);
}
这几句具体是如何执行的。。 for中的String name什么作用和含义?


如果int[] array={1,2,3,4,5,6,7};
for(int val:array)
  System.out.println(val);

就是将数组里的每一个数字都打印出来。字符串也是一样的。
那个String name 就是用来保存你从字符串数组里找出来的字符的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马