2010-07-13 3 views
2

J'essaye de coder une méthode qui charge une carte en fonction d'un nombre contenu dans loadBoard (NUMBER_HERE); Mais je reçois 'statment injoignable' sur la ligneInstruction Java injoignable

return board; 

Voici mon code:

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; } 

Qu'est-ce que je fais mal?

+0

Indentez-le correctement, puis le problème est plus facile à voir. – starblue

Répondre

7

Votre dernière ligne return board;

Si vous regardez votre code vous avez:

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

La réponse est de supprimer cette Unreachable ligne de code comme il est littéralement inutile.

+0

Alors ... qu'est-ce que je fais? Je suis coincé; par conséquent, j'ai demandé de l'aide. :( – nn2

+0

Je vois mon erreur, si c'est ce que vous essayez d'obtenir, mais je ne sais pas comment y remédier – nn2

+0

Change 'return new in [] []' en 'board = new int [] [ ] 'et ensuite retourner la carte à la fin – samitgaur

1

Dans chacun des blocs "if" et "else", vous renvoyez une valeur. Puisque le chemin d'exécution entrera toujours dans l'un de ces blocs, vous reviendrez toujours de l'un d'entre eux, et vous ne serez jamais obligé de retourner le tableau.

1

Fondamentalement, vous avez un modèle comme:

if(condition) 
    return val_a; 
else 
    return val_b; 

return val_c; 

Depuis votre « autre » est inconditionnelle, soit « si » ou « autre » est garanti à exécuter. Donc, le dernier retour est inaccessible.