Partage
  • Partager sur Facebook
  • Partager sur Twitter

JAVA débutant HELP

    19 septembre 2016 à 13:16:01

    Bonjour !

    Je suis totalement débutant dans java et je souhaite réaliser le programme de conversion celsius/fahrenheit (sans regarder la solution pour l'instant) :

    Mon programme rencontre un léger problème au niveau d'une boucle, pourriez-vous m'aider svp ? Merciii beaucoup !

    PROGRAMME :

    import java.util.Scanner;

    public class TP1 {

    public static void main(String[] args) {

    char rejouer = 'o';

    Scanner clavier = new Scanner(System.in);

    // Commencement de la boucle//

    //---------------------------------------------------------------------------------------------------------------------------------//

    while(rejouer == 'o'){

    System.out.println("Voulez-vous convertir votre valeur en degrés ou en fahreneit ? (d = 1/f = 2)");

    int reponse = clavier.nextInt();

    if(reponse == 1){

    System.out.println("Veuillez rentrer une valeur en fahrenheit :");

    int valeurF = clavier.nextInt();

    System.out.println(valeurF + " fahrenheit est égale à " + (((valeurF - 32) * 5) / 9) + "°.");

    }

    else if(reponse == 2){

    System.out.println("Veuillez rentrer une valeur en celsius :");

    int valeurC = clavier.nextInt();

    System.out.println(valeurC + "° est égale à " + (((9/5)* valeurC + 32)) + " fahrenheit.");

    }

    Cette boucle-->while(rejouer != 'o' && rejouer != 'n'){

    System.out.println("Souhaitez-vous recommencer ? (o/n)");

    rejouer = clavier.nextLine().charAt(0);

    }

    }

    System.out.println("Au-revoir !");

    }

    }

    • Partager sur Facebook
    • Partager sur Twitter
      19 septembre 2016 à 13:41:44

      Bonjour,

      Ca ne serait pas une ArrayIndexOutOfBoundsException, par hasard ? Une petite recherche sur le forum te donnera des centaines de réponses.

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2016 à 14:24:18

        salut 

        pour te mettre sur la voie :

        quand tu tape ton choix 1 ou 2 (disons 1) JAVA enregistre    "1+entrée"  

        tu récupères le 1 ça OK 

        mais il reste "entrée" arrivais au next.line() il ne demanderas rien ,il recupere "entrée" (\n) ,essaye de récupérer le premier caractère... et la boum

        réfléchis un peu tu verras c'est pas si complexe   (c'est pas péjoratif hein ^^) 

        • Partager sur Facebook
        • Partager sur Twitter
          20 septembre 2016 à 11:20:26

          Salut Wimbo, 

          J'ai compris ton idée et effectivement le problème vient bien de de ce nextLine(),

          Seulement je ne sais pas comment mettre en pratique cette idée.. La solution doit être simple pourtant, mais je cherche depuis hier à résoudre ce problème, je dirais pas non à un indice supplémentaire :)

          Merci !



          • Partager sur Facebook
          • Partager sur Twitter
            20 septembre 2016 à 16:21:06

            re 

            penser à bien a vider le buffer(je ne sais si on dit buffer en JAVA :) )

            regarde:

            https://openclassrooms.com/courses/apprenez-a-programmer-en-java/lire-les-entrees-clavier#/id/r-2180495

            mais a vu d’œil c'est pas le seul problème j'aurais pas mis la boucle la...

            • Partager sur Facebook
            • Partager sur Twitter
              20 septembre 2016 à 19:57:43

              ENFIN j'ai trouvé la solution !

              Effectivement Wimbo je me suis renseigné sur le fameux "buffer" et il fallait bien le vider en mettant :

              "clavier.nextLine()"

              Il m'a fallut faire une boucle do while pour arriver à faire marcher ce programme.

              Merci pour tout en tout cas ! :D

              • Partager sur Facebook
              • Partager sur Twitter
                20 septembre 2016 à 21:06:17

                Pas d'inquiétude tout le monde c'est battu avec ce fouttu buffer au début..même encore parfois. ..

                D'ailleurs si je le trouve lui un jour..va passer un sale quart d'heure 😊

                • Partager sur Facebook
                • Partager sur Twitter

                JAVA débutant HELP

                × 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