为什么这个SCJP计划给出了输出21但是我得到20?

时间:2012-06-11 11:39:24

标签: java enums scjp

public class Stepper 
{
enum Roman {I,V,X,L,C,M}
public static void main(String... args) 
{
    int x=7;
    int z=2;
    Roman r = Roman.X;
    do
    {
        switch(r)
        {
            case C : r = Roman.L;break;
            case X : r = Roman.C;
            case L : if(r.ordinal()>2) 
                        {
                            z += 5;//7,13,19
                        }
            case M : x++;//8,9,10
        }
        z++;//8,14,20
    }
    while (x<10);
    System.out.println(z); //
}
}

1 个答案:

答案 0 :(得分:3)

当r = Roman.C时,

case C : r = Roman.L;
break;

在案例C执行了休息之后,休息后就有了一个z ++。

你错过了那个。