[問題] 詭異的輸出結果

看板java作者 (Appetite For Illusion)時間11年前 (2012/12/23 20:44), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/1
小弟是 Java 新手,如果問了蠢問題還請見諒 我寫個一個程式,可以由命令列輸入年/月來查詢該月有幾天 雖然說已經成功地將參數值傳入了 但是其中的 switch 卻好像毫無反應 還要請教各位,到底是發生什麼問題了 =============================程式碼============================== import java.lang.Integer; public class SwitchDemo2_1 { public static void main(String[] args) { int month = Integer.parseInt(args[1]); int year = Integer.parseInt(args[0]); int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if (((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0)) numDays = 29; else numDays = 28; break; } System.out.println("Number of Days = " + numDays); }} -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.254.112.217

12/23 20:47, , 1F
隱性違反版規 5。是不管輸入什麼都沒反應還是怎樣?
12/23 20:47, 1F

12/23 20:59, , 2F
是正常的執行,輸出 Number of Days = 0,也就是預設值
12/23 20:59, 2F

12/23 21:01, , 3F
可是 month 和 year 都有值,不知道為什麼沒有進switch
12/23 21:01, 3F

12/23 21:15, , 4F
我用你的程式碼跑沒這問題耶
12/23 21:15, 4F

12/23 21:29, , 5F
好像是我的 JVM 壞掉,因為換一台電腦就好了,謝謝喔!
12/23 21:29, 5F

12/23 21:43, , 6F
我倒是猜測你 java Foo 的時候值沒有給好...
12/23 21:43, 6F

12/23 21:44, , 7F
加個 default 避免這種可能,也算是 switch 的良好習慣
12/23 21:44, 7F

12/23 22:32, , 8F
ok 受教了
12/23 22:32, 8F
文章代碼(AID): #1GrlojDw (java)