在enum for循环中,它总是从第一个开始吗?

时间:2015-03-30 00:49:13

标签: java

public enum A {1,2,3,4,5}  
A a = 2;  

for (A a : A.values()){
        if (true){
          return xxx.method1(a);
        }
}
return xxx.method2(a);

我的问题是在for循环中,是从2(2-5-1)开始还是从1(1-5)开始。如果for-loop没有返回任何内容并返回xxx.method2(a),那么a仍然是2还是已经变为5?

1 个答案:

答案 0 :(得分:2)

此代码甚至不会编译,因为您无法在for中再次声明。 您也不能使用1,2,3声明A,因为它们的数字不被接受为标识符。

但除此之外,枚举中的迭代从第一个声明的值开始,直到最后一个。值只给出了一个枚举数组,因此你的循环与:

相同
A[] all = A.values();
for (int i=0;i<all.length;i++) {
method(all[i]);
}