for循环的一种特定语法求解

yaoguicheng 2010-01-17 09:39:43
习惯上for循环我都是用这个语法:
for(initialization;boolean-expression;step)
{statement}


最近看到一个for循环的语法for(... : ... )
所以想问下这个for语法怎么用,以及和传统的相比有什么优势?
...全文
139 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingzhe2008 2010-01-18
  • 打赏
  • 举报
回复
在能用foreach,我就不用for(;;)
yaoguicheng 2010-01-18
  • 打赏
  • 举报
回复
感谢各位的回复,已经明白大略。
dinghun8leech 2010-01-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 qingzhe2008 的回复:]
在能用foreach,我就不用for(;;)
[/Quote]
foreach操作某些集合类时似乎效率远逊于传统for循环。
crazylaa 2010-01-17
  • 打赏
  • 举报
回复
JDK1.5的新特性。
zishanyan 2010-01-17
  • 打赏
  • 举报
回复
就是C#中的foreach,用于遍历集合等比for循环更加有利
godismydaughter 2010-01-17
  • 打赏
  • 举报
回复
在J2SE5.0之前,如果你想依次读取一个数组中的内容,我想大部分人会采用以下这种方法:
int[] arr=new int[5];
for(int i=0;i<5;i++)
arr=i+1;//给数组中各元素赋值
for(int j=0;j<arr.length;j++)
System.out.println(arr[j]);
但是在J2SE5.0之后,您完全可以采用另外一种方法,即增强的for循环(Enhanced for loop).那么上面的这个程序,我们可以用它来实现即是:
int[] arr=new int[5];
for(int i=0;i<5;i++)
arr=i+1;//给数组中各元素赋值
for(int a:arr)
System.out.println(a);
在增强的for循环中,我们不需要去检查数组的边界,不必担心数组下标越界,这些都由增强的for循环替我们代劳了.那么增强的for循环的语法格

式是什么样子的呢?
for(type element:array )
{
System.out.println(element)…}
这里有一点值得一提,就是element的类型一定要和array数组的元素的类型保持一致.我想这一点不用我太费口舌,因为在array数组中取出每一

个元素后,要存在element中,所以,两者的类型一定要保持一致喽!
如果是对象数组的话,做法也是大同小异,你只要保持element的类型和array数组中的元素类型一致辞就可以了.
public class Foreach {

public Foreach() {
}
public static void main(String[] args)
{
Book[] book=new Book[5];
book[0]=new Book("操作系统");
book[1]=new Book("数据结构");
book[2]=new Book("编译原理");
book[3]=new Book("C语言");
book[4]=new Book("数据库原理");
for(Book b:book)
System.out.println(b.getName()); }

}
class Book{
private String name;
public Book(){}
public Book(String name)
{ this.name=name;}
public String getName()
{
return this.name;}}


对于二维数组,我们可以把二维数组当成一个元素为一维数组的数组,这样就很容易实现对它的访问了
int[][] arr={{1,2,3},
{4,5,6},
{7,8,9}};
for(int[] row:arr)
{
for(int element:row)
{
System.out.println(element);}}
这里,我还想说一句,foreach是C#中的关键词,在java中,我们称之为增强的for循环.
无伤 2010-01-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hugogoo 的回复:]
foreach语法,jdk1.5以上版本才能用的
[/Quote]
上面例子中, for循环回去循环list, temp就是list中的一个元素。我们也可以把它写成原始的格式:
List<String> list = ........

for(int i =0; i < list.size(); i++){
System.out.println(list.get(i));
}

不知道lz有用不?
sotom 2010-01-17
  • 打赏
  • 举报
回复
for(... : ... )

这个是 jdk 1.5 新增的 for each 语句,用于简化for()

List<String> list = ........

for(String temp:list){
System.out.println(temp);
}

这个例子应该能让你看明白用法。
hugogoo 2010-01-17
  • 打赏
  • 举报
回复
foreach语法,jdk1.5以上版本才能用的

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧