2012-06-11 68 views
0
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); // 
} 
} 
+0

你好,我正在準備SCJP考試......在上面的程序當手動完成程序的輸出是20但通過jvm其21 ...更正我先謝謝你 –

+2

請參閱:http:// www。 coderanch.com/t/258402/java-programmer-SCJP/certification/Enum –

+1

如果您希望某個程序執行的操作與所做的操作之間存在差異,則應該嘗試的第一件事是與您的代碼一起執行代碼調試器。這將顯示每行代碼之後所有變量的值。 –

回答

3

當R = Roman.C,

case C : r = Roman.L; 
break; 

後殼體C所執行的斷裂,有的Z ++突破後右。

你錯過了那一個。

+0

哦...雅... !!!謝謝你賴新楚先生,我現在明白了 –

+0

@Java Professional,請接受回答http://stackoverflow.com/faq#howtoask – Reddy

相關問題