一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

java foreach语句

时间:2011-02-17 编辑:简简单单 来源:一聚教程网


foreach语法可以不必创建int变量去对由访问项构成的序列进行计数,foreach将自动遍历获得每一项     

foreach语法如下

for(变量类型 x : 该变量的序列){

       statement

}

foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。foreach的语句格式:for(元素类型t 元素变量x : 遍历对象obj){     引用了x的java语句;}下面通过两个例子简单例子看看foreach是如何简化编程的。代码如下:

用foreach遍历float数组

public class foreachfloat{

       public static void main(string [] args){

              random rand = new random(47);

              float f[] = new float[10];

              for(int i=0;i < 10;i++){

                     f[i]=rand.nextfloat();

}

for(float x : f)

       system.out.println(x);

}

}

输出

0.32454357

.

.

. //共10行

如上例所示

for(float x : f){

       这条语句定义了一个名为x的float型变量,而后将每一个值遍历到x  

}

任何数组或返回值是数组的方法都可以应用于foreach。

public class foreachstring{

       publicn static void main(string [] args){

              for(char c : “hello word”.tochararray()){

                     system.out.print(c+” ”);

}

}

}

输出

h e l l o  w o r d

但foreach不能直接对不存在的一组逻辑数字进行遍历,但for却可以

例如 for(int i=0;i < 100;i++)

如果想直接对数字进行遍历需要创建int型的数组,但可以做个静态方法自动根据传入数字来建立数组

      

例如for(int i : range(10))

这种方法虽然可以使得foreach更通用,但是这种方法会降低计算机效率

 

/**
     * foreach输出二维数组测试
     */
    public void testarray2() {
        int arr2[][] = {{4, 3}, {1, 2}};
         system.out.println("----3----foreach输出二维数组测试");
        for (int x[] : arr2) {
            for (int e : x) {
                 system.out.println(e); //逐个输出数组元素的值
             }
         }
     }

    /**
     * foreach输出三维数组
     */
    public void testarray3() {
        int arr[][][] = {
                 {{1, 2}, {3, 4}},
                 {{5, 6}, {7, 8}}
         };

         system.out.println("----4----foreach输出三维数组测试");
        for (int[][] a2 : arr) {
            for (int[] a1 : a2) {
                for (int x : a1) {
                     system.out.println(x);
                 }
             }
         }
     }

热门栏目