黑马程序员技术交流社区

标题: 帮忙解释下这句代码什么意思【已解决】 [打印本页]

作者: 刘佳    时间: 2012-8-22 16:39
标题: 帮忙解释下这句代码什么意思【已解决】
本帖最后由 刘佳 于 2012-8-22 17:10 编辑

for (Object obj:books )
  {
  }
这句代码什么意思?有何含义?
for里面不都是放(初始化表达式;条件表达式;控制语句)吗,for还有其他的形式?
作者: 刘芮铭    时间: 2012-8-22 16:44
本帖最后由 刘芮铭 于 2012-8-22 16:47 编辑

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


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

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




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

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

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

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

作者: ゛﹏_小三No°    时间: 2012-8-22 16:45
这是JDK1.5后的写法  和以前的for(int i=0;i<=books.length();i++)一样的用法,那个obj是自己起的名字
如果想打印books数组中的每个元素时,就在方法体中写system.out.print(obj); 就OK了
作者: 梁志仲    时间: 2012-8-22 16:45
这是增强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接口的对象

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


作者: 霍明波    时间: 2012-8-22 16:49
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,你提问的高级for循环都可以用for来写,通常高级FOr循环成为foreach.
    优点遍历集合、数组等提供了方便优化的写法。缺点是不能动态的删除元素,好像还有多线程最好不要用foreach,容易出现错误。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2