Partage
  • Partager sur Facebook
  • Partager sur Twitter

Une instruction qui ne s’exécute pas

Sujet résolu
    8 février 2016 à 18:00:22

    import java.util.Scanner;
    import java.util.Random;
    import java.util.ArrayList;
    public class jeuxCapital {
    public static void main(String[] args)
    {
     String[][] data ={
     {"Maroc","Rabat"},
     {"France","Paris"},
     {"USA","NewYork"},
     {"Sinigal","Dakar"}};
     Scanner clavier=new Scanner(System.in);
     final int NB_QSTN=5;
     String pays,capitale,reponse;
     ArrayList<Integer> indexTaken=new ArrayList<>();
     int score=0,index;
     for(int i=0;i<NB_QSTN;i++)
     {
     //choisir un pays de maniere aleatoire
     do{
     Random random=new Random();
      index=random.nextInt(data.length);
     }while(indexTaken.contains(index));
     indexTaken.add(index);
     pays=data[index][0];
     capitale=data[index][1];
     //Poser la question a l'utilisateur
     System.out.printf("Quelle est la capital de %s?\n",pays);
     reponse=clavier.nextLine();
     //Comparer les reponses
     if(capitale.equalsIgnoreCase(reponse))
     {
    //Afficher un message
     System.out.println("Bonne reponse :D");
     score++;
     }else{
     System.out.println("Wrong, Il fallait repondre "+capitale);
     } 
     }
     System.out.println("Votre score est  "+score);
    }

     Le message qui indique le score, ne s'affiche pas :/ , pourquoi ?!
    • Partager sur Facebook
    • Partager sur Twitter
      8 février 2016 à 21:06:14

      Pour information, tu as une fonction qui te permet d'afficher du code correctement sur OpenClassroom.

      System.out.println("Comme ceci par exemple")

      Et si tu veux avoir plus de gens qui te répondent, tu devrais sérieusement penser à l'utiliser :)

      Mais comme j'aime me faire du mal, j'ai cherché à décoder ton code, et il en est sorti que :

      Tu pourrais commencer à te demander pourquoi ton code ne boucle que 4 fois (donc i = 3, la condition de la boucle for est donc encore vérifiée). Tu remarqueras alors plus tard qu'il y a 4 pays et que tu lui demande de faire 5 tours de boucle, et tu as fait un système comme quoi un pays ne peut pas être selectionné deux fois. Ton do{}while{} boucle donc en fait à l'infini pour trouver un index aléatoire encore jamais utilisé, qu'il ne trouvera jamais.

      La problème n'était donc pas qu'une instruction ne s'effectuait pas ;)

      PS: Malgré que ce soit un avis assez personnel, tu devrais vraiment penser à espacer ton code, pour qu'il devienne plus lisible.. On découvre une certaine beauté dans la programmation après :p

      PPS : Pense VRAIMENT à mettre ton code dans une partie réservée dans ton post, c'est absolument illisible comme ça, et ça ne donne vraiment pas envie de le lire !

      • Partager sur Facebook
      • Partager sur Twitter
      Keep Calm and eat pancakes

      Une instruction qui ne s’exécute pas

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown