for循环和枚举

时间:2016-04-08 00:51:38

标签: java for-loop enums

一年有12个月。

我需要定义每个月的枚举(枚举)。我还需要使用for循环来显示每个月。

我坚持的部分是我们需要将输出格式化为:

第1个月:JAN

第2个月:FEB

...

第12个月:DEC

到目前为止,这是我的代码:

enum Month {JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC}
for (Month m : m.values())
{
   System.out.println(m);
}

我是否需要执行嵌套for循环才能拥有"月(#月):"显示?

for ( int i = 1; i <= 12; i++)
{
    System.out.println("Month" + i + ": ");
    for (Month m : m.values())
    { 
       System.out.println(m);
    }
}

很抱歉,如果这可能无法编译(我的计算机上没有我的IDE) 但我知道如果我做那个嵌套循环,它将列出外部循环的每次迭代的枚举的所有值。我试图将内部语句替换为&#34; System.out.println(m.value(i));&#34;但这不起作用,因为编译器声明该方法不适用于int类型。那么我该怎样做才能使这项工作?

1 个答案:

答案 0 :(得分:3)

根据您的Month枚举,您可以访问ordinal()name()来获取输出。像,

for (Month m : Month.values()) {
    System.out.printf("Month %d: %s%n", m.ordinal() + 1, m.name());
}