Java switch语句,无法访问break语句
我正在做一个程序,这是一个简单的游戏。我使用switch语句返回分配给按钮的图像的文件位置。为了做到这一点,我在一个名为“get Image View”的方法中使用了一个switch语句,它返回一个字符串,可以输入到一个图像视图中,我需要将按钮中的图像与其他位置的另一个图像进行比较。无论如何,我想我可能解释过度了。我的IDE(NetBeans)告诉我break语句是不可访问的,我不知道为什么。我使用了一个switch语句,它看起来与我的非常相似,我的教科书中有一个例子也非常相似。我知道我仍然需要一个默认的return语句,我只是想知道我的break语句出了什么问题。提前谢谢你Java switch语句,无法访问break语句,java,Java,我正在做一个程序,这是一个简单的游戏。我使用switch语句返回分配给按钮的图像的文件位置。为了做到这一点,我在一个名为“get Image View”的方法中使用了一个switch语句,它返回一个字符串,可以输入到一个图像视图中,我需要将按钮中的图像与其他位置的另一个图像进行比较。无论如何,我想我可能解释过度了。我的IDE(NetBeans)告诉我break语句是不可访问的,我不知道为什么。我使用了一个switch语句,它看起来与我的非常相似,我的教科书中有一个例子也非常相似。我知道我仍然需要
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语句并关闭方法。(将此作为答案发布,但似乎没有任何理由将其删除。我没有得到任何理由。)开关状态语句在行为上有些怪异,如果您没有使用过它
-语言功能的行为不取决于您的经验。这并不能回答最初的问题。如果此解决方案有效,请接受答案。谢谢