以下是我在一個程序中使用的代碼 - 看過來月變量是整數開關statemt功能不正常,並給我錯誤時,我把休息;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 2:
return 28;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
default:
System.out.println("Invalid month.");
return 0;
}
出人意料的是,當我使用上述開關構建..它給出一個錯誤說..代碼可達每一個break語句
然後我刪除了所有的break語句,並將新的代碼看起來像這樣的語句之後---
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
return 28;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
System.out.println("Invalid month.");
return 0;
}
現在..刪除break語句後代碼工作得很好..
我的問題是...在switch結構..它是強制性使用break ..否則控制流將繼續..所有的條件都經過測試和執行!對???
那麼,爲什麼在世界上是以前的**語法右面的**版本給了一個錯誤..和修改語法不正確版本上運行得很好..
任何解釋..任何人!
http://stackoverflow.com/questions/2545110/find-the-number-of-days-in-a-month-in-java –
只是爲了不存在混淆,它不是**語法上的在交換機中不使用break語句是不正確的,這是允許的,通常應該編譯時不會出錯。 – 2011-06-26 02:29:26