2017-10-13 16 views
1

Je travaille sur un programme de tirage de pièce et je voulais permettre à un utilisateur d'entrer des majuscules/minuscules/queues avec toUpperCase(). Mais pour une raison quelconque, après avoir entré l'une ou l'autre manière, pile ou face, cela ferait sauter tout le processus de la boucle et imprimerait la dernière instruction. Je ne sais pas pourquoi, parce que j'avais un programme semblable et ça marchait très bien. Appréciez vos suggestions!to.UpperCase ignore le processus où il devrait fonctionner

do { 
     System.out.printf("Do you predict heads or tails for the coin toss?(heads or tails): "); 
     String predict = in.next(); 
     System.out.print("Tossing a coin..."); 
     System.out.println(); 

     predict = predict.toUpperCase(); 

     int cointoss= (int) (Math.random()*OUTCOMES); 
     if(predict.equals("heads") && cointoss==0){ 
      System.out.print("The coin came up heads. You win!"); 
      System.out.println(); 
      wins ++; 

}

 System.out.print("Type \"c\" to continue or any other letter to quit: "); 
     playAgain = in.next(); 
     if (playAgain.equals("c")){ 
      done = false; 
     } else done = true; 
     count++; 
+2

Eh bien, vous le convertissez en majuscule et le comparer en minuscules, à tout le moins. Aucune idée sur la boucle puisque vous n'avez pas tout inclus, mais assurez-vous que la chaîne est exactement ce que vous pensez qu'elle est. –

+0

essayez d'imprimer les variables ou utilisez le débogueur qui vous aidera à résoudre le problème rapidement – rpfun12

+0

Que se passe-t-il si vous écrivez '' HEADS ''à la place de' 'têtes''? –

Répondre

2

Utilisation equalsIgnoreCase au lieu de equals. Ensuite, vous n'avez pas à penser à majuscules/minuscules (que vous avez mélangé, btw)