[英]Java switch statment, break statement unreachable
我正在開發一個簡單游戲的程序。 我正在使用 switch 語句來返回分配給按鈕的圖像的文件位置。 為了做到這一點,我在一個名為“get Image View”的方法中使用了一個 switch 語句,它返回一個字符串,該字符串可以輸入到一個圖像視圖中,我需要將按鈕中的圖像與其他地方的另一個圖像進行比較。 無論如何,我想我可能過度解釋了。 我的 IDE (NetBeans) 告訴我我的 break 語句無法訪問,我不知道為什么。 我使用了一個與我的非常相似的 switch 語句,並且我的教科書中有一個例子也非常相似。 我知道我仍然需要一個默認的 return 語句我只想知道我的 break 語句是怎么回事。 先感謝您!
public String getImageView(int button)
{
switch(button)
{
case 0: System.out.println("error");
case 1: return "1.png";
break;
case 2: return "2.png";
break;
case 3: return "3.png";
break;
case 4: return "4.png";
break;
case 5: return "5.png";
break;
case 6: return "6.png";
break;
case 7: return "7.png";
break;
case 8: return "8.png";
case 9: return "9.png";
case 10: return "10.png";
}
}
您可以嘗試以下方法:
public String getImageView(int button){
String imageViewName = "";
switch(button)
{
case 0: System.out.println("error");
case 1: imageViewName = "1.png";
break;
case 2: imageViewName = "2.png";
break;
case 3: imageViewName = "3.png";
break;
case 4: imageViewName = "4.png";
break;
case 5: imageViewName = "5.png";
break;
case 6: imageViewName = "6.png";
break;
case 7: imageViewName = "7.png";
break;
case 8: imageViewName = "8.png";
break;
case 9: imageViewName = "9.png";
break;
case 10: imageViewName = "10.png";
break;
}
return imageViewName;
}
希望這可以幫助。
好吧,switch-state-statements 的行為不像一個大的 if-else-statement。 考慮這段代碼:
int a = 0;
switch (a) {
case 0:
//do something
break;
case 1:
//do something else
break;
default:
//default case
}
在這里,第一種情況將被觸發,您可以通過a
的值來判斷。
如果您想執行第一種情況,但也想在第二種情況下滑倒,您可以省略第一種情況下的break
。
所以這段代碼:
int a = 0;
switch (a) {
case 0:
System.out.println("case 0");
case 1:
System.out.println("case 1");
break;
default:
//default case
}
將 output:
case 0
case 1
就像在您的代碼中一樣。
所以也許你應該考慮break;
在你的第一種情況下。 否則它將執行println
但也會返回1.png
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.