java - 为什么这个 SCJP 程序给出输出 21 但我得到 20?

标签 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); //
}
}

最佳答案

当 r = Roman.C 时,

case C : r = Roman.L;
break;

在 case C 执行中断之后,中断后面紧接着有一个 z++。

你错过了那个。

关于java - 为什么这个 SCJP 程序给出输出 21 但我得到 20?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10979345/

相关文章:

c# - 带注解的 Enum.Parse

java - 基于优先级的线程?

java - 继承后保护成员行为。

java - 泛型、类型删除和静态结构方法

java - 如何获取枚举的可能项目数?

javascript - 需要关于过滤器图标编码的建议

c# - 使用用户友好的字符串枚举 ToString

java - 与 indexOf 一起使用 Comparable

java - 使用 SuperCSV 跳过 CSV 文件中的可选 header

java - 在 eclipse RCP 中发布选择