2017-10-12 4 views
-1

Le code ci-dessous provient d'un jeu dans lequel j'ai besoin de générer 2 nombres aléatoires en Java, et l'utilisateur est présenté avec l'un d'entre eux. Ils doivent alors deviner si le second nombre est supérieur ou inférieur au premier. J'ai créé une boucle while pour vérifier les erreurs dans leur entrée et la boucle est exécutée même si la condition n'est pas vraie. Saisie H signifie que leur estimation est le prochain numéro est plus élevé, et L signifie qu'ils croient sonJava alors que la boucle ne fonctionne pas avec la saisie des caractères

inférieur
// Input 
System.out.println ("Do you think the second number is higher or lower (enter 'H' or 'L' respectively): "); 
char userGuess = Character.toUpperCase(input.next().charAt(0)); 

// Input error check (and immediate output of second number) 
while (userGuess != 'H' || userGuess != 'L') { 
    System.out.println ("Sorry, I didn't understand that. Please try again: "); 
    userGuess = Character.toUpperCase(input.next().charAt(0));  
} 
System.out.println ("The second number was " + secondRandomNumber); 
+0

@ user2023608 Merci! – developer067

Répondre

2

Utilisez & & pas ||. Bien sûr, il ne va pas être H ou ne va pas être L

while (userGuess != 'H' && userGuess != 'L') { 
    System.out.println ("Sorry, I didn't understand that. Please try again: "); 
    userGuess = Character.toUpperCase(input.next().charAt(0));  
}