Почему эта программа 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++.
Вы пропустили это.