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 :
Voici la classe qui appelle cette méthode
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"); } } } };
Probleme détaillé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
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...
Partager