1

在调试我的代码时,我遇到了这个有趣的场景,我在枚举中使用了 switch 语句。

对我来说,它看起来不应该编译并阻止我犯下愚蠢的错误,在可以使用这种语法的地方我是否遗漏了什么?

我的 java 版本是 1.6.0_10

private enum E_TEST
{
    A, B, C, D, E
}

public static void main( String[] args )
{
    for( E_TEST e : E_TEST.values() )
    {
        switch( e )
        {
            case A: B: C: D: E:
            {
                System.out.println( e );
                break;
            }
        }
    }
}

为了完整起见,此代码的输出如下。

A
4

1 回答 1

4

The code compiles because in the line

        case A: B: C: D: E:

the B:, C:, D: and E: are labels.

It doesn't do what you expect because that line should be

case A: case B: case C: case D: case E:

as dasblinkenlight noted in his post.

于 2012-10-08T00:29:04.213 回答