簡體   English   中英

Java無法訪問的語句

[英]Java unreachable statement

我正在嘗試編寫一個方法,根據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;  }

我究竟做錯了什么?

你的最后一行return board;

如果你查看你的代碼,你有:

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

答案是刪除Unreachable的代碼行,因為它實際上毫無意義。

在每個“if”和“else”塊中,返回一個值。 由於執行路徑將始終進入其中一個塊,因此您將始終從其中一個塊返回,並且您將永遠不會進入“返回板”。

基本上你有一個像這樣的模式:

if(condition)   
    return val_a;
else
    return val_b;

return val_c;

由於你的'else'是無條件的,所以'if'或'else'可以保證執行。 所以最后的回歸是無法到達的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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