作者SlashedAxl (Appetite For Illusion)
看板java
標題[問題] 詭異的輸出結果
時間Sun Dec 23 20:44:24 2012
小弟是 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
推 PsMonkey:隱性違反版規 5。是不管輸入什麼都沒反應還是怎樣? 12/23 20:47
→ SlashedAxl:是正常的執行,輸出 Number of Days = 0,也就是預設值 12/23 20:59
→ SlashedAxl:可是 month 和 year 都有值,不知道為什麼沒有進switch 12/23 21:01
→ johnhao1206:我用你的程式碼跑沒這問題耶 12/23 21:15
→ SlashedAxl:好像是我的 JVM 壞掉,因為換一台電腦就好了,謝謝喔! 12/23 21:29
推 PsMonkey:我倒是猜測你 java Foo 的時候值沒有給好... 12/23 21:43
→ PsMonkey:加個 default 避免這種可能,也算是 switch 的良好習慣 12/23 21:44
→ SlashedAxl:ok 受教了 12/23 22:32