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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘佳 中级黑马   /  2012-8-22 16:39  /  1805 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘佳 于 2012-8-22 17:10 编辑

for (Object obj:books )
  {
  }
这句代码什么意思?有何含义?
for里面不都是放(初始化表达式;条件表达式;控制语句)吗,for还有其他的形式?

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 鼓励一下!

查看全部评分

4 个回复

倒序浏览
本帖最后由 刘芮铭 于 2012-8-22 16:47 编辑

楼主你好  看来你在基础方面还有待加强


这个是JAVA1.5版本以后出现的新特性  叫做增强for循环或者高级for循环

可以这么理解:
for(数据类型  变量名 : 需要遍历的集合或者数组)




上述你说的for循环 我们称之为:传统for

下面给你说一下传统for和高级for的区别:

高级for有一个局限性:必须要有被遍历的目标!

建议:在遍历数组的时候,还是希望用传统for,因为可以定义角标!

评分

参与人数 1技术分 +1 收起 理由
田建 + 1 赞一个!

查看全部评分

回复 使用道具 举报
这是JDK1.5后的写法  和以前的for(int i=0;i<=books.length();i++)一样的用法,那个obj是自己起的名字
如果想打印books数组中的每个元素时,就在方法体中写system.out.print(obj); 就OK了
回复 使用道具 举报
这是增强for语句,jdk1.5的新特性。
增强的for语句形式如下:
for(Type loop-variable:set - expression)
statement
其中set - expression必须为确定的对象,这个对象是我们想要迭代的数值的集合。loop-variable是一个局部变量,它的类型Type必须适合于数值集合set - expression的内容,每次进行循环时,loop-variable都会从set - expression取出下一个值,然后执行statement,直到取完集合中的数据。
set - expression必须是数组或者实现了java.lang.Iterable接口的对象

它的好处是不用手工维护数组角标,也不必检查数组的长度。
它的缺点是只能在单独的一个数组上向前循环,并且只能查看数组的元素

回复 使用道具 举报
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,你提问的高级for循环都可以用for来写,通常高级FOr循环成为foreach.
    优点遍历集合、数组等提供了方便优化的写法。缺点是不能动态的删除元素,好像还有多线程最好不要用foreach,容易出现错误。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马