Почему эта программа SCJP дает вывод 21, а я получаю 20?

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 ответ

Когда r = Roman.C,

case C : r = Roman.L;
break;

после того, как случай C выполнил перерыв, сразу после перерыва появляется z++.

Вы пропустили это.

Другие вопросы по тегам