public class TestDays {
public enum Days { MON,TUE,WEN};
public static void main(String [] args){
for(Days d:Days.values())
;
Days [] d2=Days.values();
System.out.println(d2[2]);
}}
中的for(Days d:Days.values())是什么意思?
最后结果为什么是WEN?

解决方案 »

  1.   

    for(Days d:Days.values()) 增强 for循环 啊
    jdk1.5后有的 d2[2] 数组索引从0开始的,所以2就是WEN
      

  2.   

    中的for(Days d:Days.values())是什么意思?
    这是增强版的for循环
    相当于:
    Days [] d = Days.values();
    for(int i=0;i<d.length;i++)
    最后结果为什么是WEN?
    public enum Days { MON,TUE,WEN};这不是很明显吗
      

  3.   

    for(Days d:Days.values()) 增强 for循环,那在这段代码中的作用是什么?
      

  4.   


    什么也没做。但你要看得懂。
    for(Days d : Days.values())表示要遍历Days中的每一个值 
      

  5.   

    for(Days d : Days.values())表示要遍历Days中的每一个值 
      

  6.   

    增强for循环,http://hi.baidu.com/wangwenqiang/blog/item/076d4cc21891a132e4dd3b5c.html
    参考一下
      

  7.   

    他就和for循环一样。没什么,可能能快一点。
      

  8.   


    反编译:
    public enum Days { MON,TUE,WEN}
    得到:
    public final class Days extends Enum
    {    public static Days[] values()
        {
            return (Days[])$VALUES.clone();
        }    public static Days valueOf(String s)
        {
            return (Days)Enum.valueOf(Days, s);
        }    private Days(String s, int i)
        {
            super(s, i);
        }    public static final Days MON;
        public static final Days TUE;
        public static final Days WEN;
        private static final Days $VALUES[];    static 
        {
            MON = new Days("MON", 0);
            TUE = new Days("TUE", 1);
            WEN = new Days("WEN", 2);
            $VALUES = (new Days[] {
                MON, TUE, WEN
            });
        }
    }枚举类实际上就是一个final的class,它里面有一个private static final Days $VALUES[];这个数组包含了所有的成员,for(Days d:Days.values()) 就是在遍历这个数组。
      

  9.   

    for(Days d:Days.values())
    相当于遍历数组,并把数组的值赋予变量Days d。因为数组Days的最后一个元素是WEN,所以d=WEN。
      

  10.   

    public class Test {
    public enum Days {MON, TUE, WEN}; public static void main(String[] args) {
    //这个 for循环是遍历Days,取出Days.values() 赋给d
    for (Days d : Days.values()) {
    System.out.println(d);
    } for (int i = 0; i <= 2; i++ ){
    Days[] d2 = Days.values();
    System.out.println(d2[i]);
    }
    }
    }
      

  11.   

    没怎么明白,代码觉得应该是Days [] d2=Days.values(); 
      

  12.   

    没错,自己看错了,但这样的话,我就不知道有什么意义了
    Days [] d2=Days.values(); 
    System.out.println(d2[2]); 
      

  13.   

    这是个for each语句,用来遍历数组中的每一个值
      

  14.   

      其实2楼说的已经很明白了,你可能就是看增强for循环有点陌生
    我在说一下吧
    public enum Days { MON,TUE,WEN}; enum是枚举类型里面有三个值分别是MON,TUE,WEN
    而你的代码中这句for(Days d:Days.values()) 里的Days.values()相当于把枚举类型的三个值取到一个
    Days数组d中也就是Days [] d2 = Days.values();
    剩下的语句就相当于for(int i=0;i <d2.length;i++) 做了一个for循环
     
    至于最后结果为什么是WEN 是因为你写的输出System.out.println(d2[2]); d2[2]的意思就是d[]索引的2位置相当于第三个位置也就是WEN了
    增强for循环的写法就是这样写的 如果你不知道的话 可以上网查查有很多的
      

  15.   

    这就是Foreach循环嘛!相当于迭代了
      

  16.   

    中的for(Days d:Days.values())是什么意思?
    最后结果为什么是WEN?
    for的第二种写法,和for(int i=0;i<d.length;i++)是一样的。
    最后的结果是WEN,因为数据的下标是从“0”开始的啊。
      

  17.   

    增强for循环,jdk1.5中才加进来的。
    他的使用方法上面都说得很清楚了。不在啰嗦养成看帖回帖的习惯,嘿嘿。
      

  18.   

    这里根本是争加代码行数,
    JDK5.0以后的版本
      

  19.   

    这是JDK5.0新增强的for循环
    for() 这个for功能不常用,它会把里面从头到尾都遍历出来。
    如下
    int[] integers = {1, 2, 3, 4};
    /* 开始遍历 */
    for (int j = 0; j < integers.length; j++) {
    int i = integers[j];
    System.out.println(i);
    }增强的For循环如下
    for(int i:integers){
    System.out.println(i);
    }