【问题标题】:Java unreachable statementJava 不可达语句
【发布时间】:2010-07-13 01:09:20
【问题描述】:

我正在尝试编写一种方法,该方法根据 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;  }

我做错了什么?

【问题讨论】:

  • 正确缩进,问题更容易看出。

标签: java arrays


【解决方案1】:

你的最后一行return board;

如果你看看你的代码,你有:

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

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

【讨论】:

  • 那么.. 我该怎么办?我被困住了;因此我寻求帮助。 :(
  • 我看到了我的错误,如果这就是你想要的。但我不知道如何解决它。
  • 将'return new in[][]'改为'board = new int[][]',最后返回板子
【解决方案2】:

在每个“if”和“else”块中,您返回一个值。由于执行路径总是会进入这些块之一,所以你总是会从其中一个块中返回,并且你永远不会落入“返回板”。

【讨论】:

    【解决方案3】:

    基本上你有这样的模式:

    if(condition)   
        return val_a;
    else
        return val_b;
    
    return val_c;
    

    由于您的 'else' 是无条件的,因此可以保证执行 'if' 或 'else'。所以最后一次返回是无法到达的。

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 2013-10-18
      • 2013-09-27
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      相关资源
      最近更新 更多