Java无法访问的语句

时间:2010-07-13 01:09:20

标签: java arrays

我正在尝试编写一个根据loadBoard(NUMBER_HERE)内的数字加载地图的方法;但我在线上得到“无法达到的声明”

return board;

这是我的代码:

public int[][] loadBoard(int map) {
    if (map == 1) {   return new int[][] { 

 {2,2,24,24,24,24,24,3,3,0,0,0,1 },

 { 2,2,24,23,23,23,24,1,3,0,0,0,1 },

 { 1,1,24,23,23,23,24,1,3,3,3,3,1 },

 { 1,1,24,24,23,24,24,1,1,1,1,3,1 },

 { 1,1,1,1,7,1,1,1,1,1,1,3,1 },

 { 5,1,1,1,7,7,7,7,7,1,1,1,1 },

 { 6,3,3,1,3,3,3,1,7,7,7,3,1 },

 { 6,3,3,1,3,1,1,1,1,1,7,1,1 },

 { 3,3,1,1,1,1,1,1,1,1,7,1,1 } };

 }else{

 return new int[][] {

 { 1,1,1,1,1,24,1,1,1,1,1,1,1 },


 { 1,1,1,1,1,24,1,1,1,1,1,1,1 },

 { 1,1,1,1,1,24,1,1,24,1,1,1,1 },

 { 1,1,1,1,1,24,1,1,24,1,1,1,1 },

 { 1,1,7,1,1,24,24,24,24,1,1,1,1 },

 { 1,1,7,1,1,24,1,24,1,1,1,1,1 },

 { 1,1,1,1,1,24,1,1,1,1,1,1,1 },

 { 1,1,1,1,1,24,1,1,1,1,1,1,1 },

 { 1,3,3,1,1,24,1,1,1,1,1,1,1 },

 }; } 

 return board;  }

我做错了什么?

3 个答案:

答案 0 :(得分:7)

您的上一行return board;

如果你看一下你的代码:

if (condition)
  return /* Some things go here */
else
  return /* The rest go here */
return /* But who goes here? */

答案是删除Unreachable代码行,因为它实际上毫无意义。

答案 1 :(得分:1)

在每个“if”和“else”块中,返回一个值。由于执行路径将始终进入其中一个块,因此您将始终从其中一个块返回,并且您将永远不会进入“返回板”。

答案 2 :(得分:1)

基本上你有一个类似的模式:

if(condition)   
    return val_a;
else
    return val_b;

return val_c;

由于你的'else'是无条件的,所以'if'或'else'可以保证执行。所以最后的回归是无法到达的。