Java switch语句,无法访问break语句

Java switch语句,无法访问break语句,java,Java,我正在做一个程序,这是一个简单的游戏。我使用switch语句返回分配给按钮的图像的文件位置。为了做到这一点,我在一个名为“get Image View”的方法中使用了一个switch语句,它返回一个字符串,可以输入到一个图像视图中,我需要将按钮中的图像与其他位置的另一个图像进行比较。无论如何,我想我可能解释过度了。我的IDE(NetBeans)告诉我break语句是不可访问的,我不知道为什么。我使用了一个switch语句,它看起来与我的非常相似,我的教科书中有一个例子也非常相似。我知道我仍然需要

我正在做一个程序,这是一个简单的游戏。我使用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;
  }

希望这能有所帮助。

切换状态语句的行为与大型if-else语句不同。 考虑这个代码:

int a = 0;
switch (a) {
  case 0:
    System.out.println("case 0");
  case 1:
    System.out.println("case 1");
    break;
  default:
    //default case
}
inta=0;
开关(a){
案例0:
//做点什么
打破
案例1:
//做点别的
打破
违约:
//默认情况
}
这里将触发第一种情况,您可以通过
a
的值来判断

如果您希望执行第一种情况,但也希望在第二种情况下滑倒,您可以在第一种情况下省略
中断

所以这个代码:

int a = 0;
switch (a) {
  case 0:
    System.out.println("case 0");
  case 1:
    System.out.println("case 1");
    break;
  default:
    //default case
}
将输出:

case 0
case 1
就像你的代码一样


所以也许你应该考虑<代码>断裂;<代码>在第一种情况下。否则它将执行
println
,但也会返回
1.png

您不需要任何
break
语句。只需删除所有
break
语句,它就可以正常工作了。。。。因为休息时间是无法到达的,所以你会在他们之前返回。似乎毫无意义,因为您可以构建一个字符串,或者将图像名称放入数组或映射中,但这是另一个问题。您在break之前使用return语句。这就是为什么..普通java,不是特定于fxI的,刚刚意识到它不可访问的原因。我觉得自己很笨。为了防止其他人有这个问题,break语句不可访问的原因是return语句退出switch语句并关闭方法。(将此作为答案发布,但似乎没有任何理由将其删除。我没有得到任何理由。)
开关状态语句在行为上有些怪异,如果您没有使用过它
-语言功能的行为不取决于您的经验。这并不能回答最初的问题。如果此解决方案有效,请接受答案。谢谢