簡體   English   中英

Java switch 語句,break 語句不可達

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM