现在的位置: 首页 > 综合 > 正文

增强for循环

2013年12月12日 ⁄ 综合 ⁄ 共 1341字 ⁄ 字号 评论关闭

 

在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循环.

抱歉!评论已关闭.