acceder à une variable qui est dans une condition
Bonjour à tous,
PROBLEME : une variable result se crée dans un if, j'aimerais acceder à cette variable dans le else...
Voici la méthode en question :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| @Override public void specialRoomEvent(int pResult)
{
int result;
if(pResult == 0)
{
Random r = new Random();
Random r2 = new Random();
int var1 = r.nextInt(3000);
int var2 = r2.nextInt(3000);
result = var1 + var2;
gui.println("QUESTION : Combien font :"+var1+"+"+var2+"?");
}
if(pResult != 0)
{
if (result == pResult)
{
gui.println("Bonne réponse");
}
else
{
gui.println("Mauvaise réponse");
}
}
}
}; |
Voici la classe qui appelle cette méthode
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void execute(Player player, UserInterface gui)
{
int result;
if(!hasSecondWord())
{
result = 0;
}
else
{
String vResult = getSecondWord();
result = Integer.parseInt(vResult);
System.out.println("Notre choix"+result);
}
SpecialRoom room = (SpecialRoom)player.getCurrentRoom();
room.specialRoomEvent(result);
} |
Probleme détaillé :
Donc quand getSecondWord est vide la méthode specialRoomEvent est appelé une premiere fois avec pResult = 0;
Donc dans specialRoomEvent on crée la variable result et on lui assigne une vlaeur (var1+var2).
Ensuite l'utilisateur en tapant une commande va envoyé un getSecondWord qui ne sera pas vide ! et donc pResult prendra sa valeur
specialRoomEvent est de nouveau appelé
pResult !=0
=> La seconde boucle se lance
notre pResult a la bonne valeur sauf que j'ai plus la valeur du result créé précedemment...