2016-10-24 2 views
-1

Je suis relativement nouveau à la programmation et j'ai des problèmes avec un programme que j'ai inventé. C'est un jeu de devinettes, l'utilisateur doit deviner un nombre aléatoire généré et vous avez 6 chances. Malheureusement, je ne comprends pas très bien ce qui ne va pas avec le programme. Chaque fois que j'essaie d'entrer "Oui" pour démarrer le programme, rien ne se passe. Énumérés ci-dessous est le code s'il vous plaît laissez-moi savoir ce que je fais mal.Le programme ne fonctionnera pas après que je l'ai entré dans drJava

import java.util.Scanner; 
import java.util.Random; 

public class Project4{ 
    public static void main(String[] args){ 
    Scanner input = new Scanner(System.in); 
    System.out.println("Would you like to play a game? (Yes or No)"); 
    String a1 = input.next().toLowerCase(); 
    while(a1.equals("Yes")){ 
       Random secretnum = new Random(); 
     int num; 
     for(int counter=0; counter<2; counter++){ 
     num = 1+secretnum.nextInt(99); 
     System.out.println("You have 6 chances to guess the secret number"); 
     System.out.println("Player : guess a number between 1 and 100"); 
     int num1 = input.nextInt(); 
     while(num1 != num){ 
      for(int i = 6; i < 0; i--){ 
      if(num1 < num){ 
       System.out.println("Sorry," + num1 + "is too low"); 
       System.out.println("You have" + i + "strikes left"); 
      }else{ 
       if(num1 > num){ 
       System.out.println("Sorry," + num1 + "is too high"); 
       System.out.println("You have" + i + "strikes left"); 
       } 
      } 
      if(num1 == num){ 
      System.out.println("Correct! The secret number was" + secretnum); 
      } 
     } 
     if(num1 < 0 || num1 > 100){ 
      for(int i = 6; i < 0; i--){ 
      System.out.println("You were supposed to enter a number between 1 and 100"); 
      System.out.println("You have" + i + "strikes left"); 

      } 
     } 
     } 
    } 
    if(a1.equals("No")); 
    System.out.println("Goodbye"); 
    } 
    input.close(); 
} 
} 
+0

Savez-vous ce que la méthode toLowerCase fait? –

+0

Pas vraiment, je ne suis pas expérimenté dans ce genre de choses, est ce qui ne va pas avec? – Udaman

Répondre

1

Votre problème est ici:

String a1 = input.next().toLowerCase(); 
while(a1.equals("Yes")){ 

La première ligne tourne toute entrée en minuscules et stocke le résultat de cette opération à a1.

La deuxième ligne vérifie si a1 est égal à "Oui". Astuce:. Une chaîne minuscule ne peut presque jamais être égal à « Y es » »C'est le point entier de en minuscule votre entrée à l'avant

La vraie réponse est ici: quand vous n'êtes pas familier avec ce que de tels appels fais, étudie leur !