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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄智 中级黑马   /  2015-6-15 22:22  /  677 人查看  /  12 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄智 于 2015-6-15 22:32 编辑

我们都知道for语句语法为:
for(表达式1,表达式2,表达式3){

            语句序列
                                 }

表达式1:初始表达式,负责完成变量的变化
表达式2:循环条件表达式,值为boolean类型
表达式3:循环后操作的表达式,改变循环的条件

而foreach语句是for语句的特殊简化版本。foreach语句并不能完全取代for语句,然而任何foreach语句都可以改写成for语句。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。

语法格式:
for(元素变量X:遍历对象obj){
    引用X的java语句;
}
foreach语句中的元素变量X,不必对其进行初始化。

foreach语句在遍历数组等方面很方便,适合使用。

例如:          //一维数组
         public class One {         public static void main(String[] args) {
                      int arr[] = {7,1,10};
                      System.out.println("一维数组中的元素分别为:");
                      for(int x:arr){
                        System.out.println(x+"   ");               
        }
        }
}
           //二维数组
            public class Two{
                 public static void main(String args[]){
                  int arr[][] = {{3,4,5},{1,2,5}};
                 System.out.println("二维数组中的元素分别为:");      
                     for(int x[]:arr){
                     for(int e : x){
                           System.out.println(e+" ");
                  }
                    System.out.println("");
             }
     }
}
然而你会问为什么用foreach遍历二维数组?
当然是因为普通的for循环太麻烦。二维数组遍历要用双层 for循环,还要通过数组的length属性获得数组的长度。我觉得我自己还是挺懒的。

但是还是要给个例子。
       //用双层for循环遍历二维数组
        public class Three{
               public static void main(String args[]){
               int b[][] = new int[][]{{1,},{2,3},{4,5,6}};
               System.out.println("二维数组为:");
               for(int k = 0;k<b.length; k++){
                  for(int c = 0; c<b[k].length;c++){
                       System.out.println(b[k][c]+" ");  
                   }
               System.out.println();  
            }
    }
}
    所以foreach语句遍历数组更简单,双层我都迷了。






12 个回复

倒序浏览
简化很多诶  看着挺清晰的   抢到第一个沙发 哈哈  
回复 使用道具 举报
简化了书写
回复 使用道具 举报
谢谢分享,学习了
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
是方便了很多.....
回复 使用道具 举报
hi陈 初级黑马 2015-6-15 23:54:10
7#
学习了.......
回复 使用道具 举报
写的挺全面 谢谢分享
回复 使用道具 举报
主要使用在集合或者数组中,就是遍历方便点,但是不能对元素进行增删操作,有一定局限性,对于集合还是使用Iteartor比较合适!数组的话,只要结果完全可以转成字符串,所以我真没看见增强for有什么优点!
回复 使用道具 举报
的确不错, 但是有没有用法的局限呢?
回复 使用道具 举报
的确不错, 但是有没有用法的局限呢?
回复 使用道具 举报
过来学习一下
回复 使用道具 举报
qian0217wei 发表于 2015-6-16 00:31
主要使用在集合或者数组中,就是遍历方便点,但是不能对元素进行增删操作,有一定局限性,对于集合还是使用 ...

嗯,我觉得也只是遍历数组时写的简单。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马