Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec sc.nextLine().charAt(0);

25 mai 2015 à 12:31:14

Bonjour,

Je me casse la tête depuis un bon p'tit moment sur ce code qui se bloque à la ligne 39 ... Si un zéro pourrait gentiment m'éclairer !!

package projet1;
 
import java.util.Scanner;
 
public class Tp {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        Scanner sc = new Scanner (System.in);
        System.out.println ("CONVERTISSEUR DEGRES CELSIUS ET DEGRES FAHRENHEIT\n---------------------------------------");
        char reponse = 'O';
        while (reponse == 'O')
        {
            System.out.println ("Choississez le mode de conversion :");
            System.out.println ("1 - Convertisseur Celsius - Fahrenheit");
            System.out.println ("2 - Convertisseur Fahrenheit - Celsius");
            int con = sc.nextInt();
            while(con != 1 && con != 2)
            {
                System.out.println("Veuillez saisir soit 1, soit 2 !!");
                con = sc.nextInt();
            }
            if (con == 1)
            {
                System.out.println("Température en Celsius à convertir :");
                double tpc = sc.nextDouble();
                double tpn = (double)9/5*tpc+32;
                System.out.println(tpc+" °C correspond à "+tpn+" °F.");
            }
            else
            {
                System.out.println("Température en Fahrenheit à convertir :");
                double tpc = sc.nextDouble();
                double tpn = (tpc-32)*5/9;
                System.out.println(tpc+" °F correspond à "+tpn+" °C.");
            }
                System.out.println ("Souhaitez-vous convertir une autre température ? (O/N)");
                reponse = sc.nextLine().charAt(0);
                while(reponse != 'O' && reponse != 'N')
                {
                    System.out.println("Veuillez saisir soit O, soit N !!");
                    reponse = sc.nextLine().charAt(0);
                }
        }
    }
 
}



  • Partager sur Facebook
  • Partager sur Twitter
25 mai 2015 à 18:23:05

Bonsoir !

Quand tu dis que ton code bloque, tu veux dire qu'il y a un message d'erreur ou qu'il ne fait rien ?

J'ai essayé de faire comme tu fais :

Scanner sc = new Scanner(System.in);
    
char reponse = sc.nextLine().charAt(0);
    
System.out.println(reponse);

Et il me retourne bien la première lettre. Sinon pour ta vérification passe par un String avec ça :

String reponse = sc.nextLine();
while(!reponse.equals("O") && !reponse.equals("N"))

Bon courage pour la suite !


  • Partager sur Facebook
  • Partager sur Twitter
Auteur, Vidéaste et Développeur (Web, Logiciel et Jeux Vidéos)