IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Convertir degrés celcius en fahrenheit


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut Convertir degrés celcius en fahrenheit
    Bonjour,

    Je suis actuellement le TP cité en ojet. J'aimerais utiliser que la boucle while le souci est que j'arrive uniquement au message Good bye.

    Cordialement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    import java.util.Scanner;
     
     
    public class Sdz1 {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		//initialisation des variables
     
     
     
     
    	    double aConvertir, convertit=0;
    	    char reponse =' ', mode = ' ';
    	    Scanner sc = new Scanner(System.in);
     
    	    while (reponse == 'O'){
    	    System.out.println("CONVERTISSEUR DEGRÉS CELSIUS ET DEGRÉS FAHRENHEIT");
     
    	    System.out.println("-------------------------------------------------");
    		//On initialise celle-ci à O pour oui
     
     
     
        while (mode != '1' && mode != '2' )
    		{
        	mode = ' ';
        	System.out.println("Choisissez le mode de conversion : ");
     
            System.out.println("1 - Convertisseur Celsius - Fahrenheit ");
     
            System.out.println("2 - Convertisseur Fahrenheit - Celsius ");
     
            mode = sc.nextLine().charAt(0);
     
        	      //saisie de la température à convertir
     
        	      System.out.println("Température à convertir :");
     
        	      aConvertir = sc.nextDouble();
     
        	      //Pensez à vider la ligne lue
     
        	      sc.nextLine();
        	      if(mode == '1'){
     
        	          convertit = ((9.0/5.0) * aConvertir) + 32.0;
     
        	          System.out.print(aConvertir + " °C correspond à : ");
     
        	          System.out.println(arrondi(convertit, 2) + " °F.");
        	          System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
        	     	 reponse = sc.nextLine().charAt(0);
     
        	        }
     
        	        else if (mode == '2'){
     
        	          convertit = ((aConvertir - 32) * 5) / 9;
     
        	          System.out.print(aConvertir + " °F correspond à : ");
     
        	          System.out.println(arrondi(convertit, 2) + " °C.");
        	          System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
        	     	 reponse = sc.nextLine().charAt(0);
     
        	        }
        	        else {
        	        	System.out.print("Vous n'avez pas choisi une valeur juste");
        	        }
     
    	    }
     
    	    }
        System.out.print("Good Bye");
     
     
    		}
     
     
    	public static double arrondi(double A, int B) {
     
            return (double) ( (int) (A * Math.pow(10, B) + .5)) / Math.pow(10, B);
    	}
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	    char reponse =' ', mode = ' ';
    	    Scanner sc = new Scanner(System.in);
     
    	    while (reponse == 'O'){
    Vu que tu initialise reponse à ' ' et non pas à 'O', le premier test vaut false et tu ne rentrera jamais dans ta boucle principale.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    Bonjour et merci,

    Effectivement ça y est, je suis dans la boucle principal le souci est que lorsque je saisis "O" j'ai une boucle infinie : "CONVERTISSEUR DEGRÉS CELSIUS ET DEGRÉS FAHRENHEIT".
    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Toujours le même problème, cette fois-ci dans ta boucle intérieure avec mode.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur du Dimanche
    Inscrit en
    Juillet 2014
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur du Dimanche
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2014
    Messages : 147
    Points : 70
    Points
    70
    Par défaut
    Salut,

    Voici le résultat final.
    Merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    import java.util.Scanner;
     
     
    public class Sdz1 {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		//initialisation des variables
     
     
     
     
    	    double aConvertir, convertit=0;
    	    char reponse ='O', mode = ' '; 
     
    	    Scanner sc = new Scanner(System.in);
     
    	    while (reponse == 'O'){
    	    System.out.println("CONVERTISSEUR DEGRÉS CELSIUS ET DEGRÉS FAHRENHEIT");
     
    	    System.out.println("-------------------------------------------------");
    		//On initialise celle-ci à O pour oui
     
     
     
     
    	    mode = ' ';
                  while (mode != '1' && mode != '2' )
    		                        {
     
        	                             System.out.println("Choisissez le mode de conversion : ");
     
                                         System.out.println("1 - Convertisseur Celsius - Fahrenheit ");
     
                                          System.out.println("2 - Convertisseur Fahrenheit - Celsius ");
     
                                        mode = sc.nextLine().charAt(0);
                                        if(mode != '1' && mode != '2')
     
                                            System.out.println("Mode inconnu, veuillez réitérer votre choix.");
        	      //saisie de la température à convertir
                                        else
        	                                System.out.println("Température à convertir :");
     
        	                               aConvertir = sc.nextDouble();
     
        	      //Pensez à vider la ligne lue
     
        	                                 sc.nextLine();
        	          if(mode == '1'){
     
        	          convertit = ((9.0/5.0) * aConvertir) + 32.0;
     
        	          System.out.print(aConvertir + " °C correspond à : ");
     
        	          System.out.println(arrondi(convertit, 2) + " °F.");
        	          System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
        	     	 reponse = sc.nextLine().charAt(0);
     
        	        }
     
        	        else if (mode == '2'){
     
        	          convertit = ((aConvertir - 32) * 5) / 9;
     
        	          System.out.print(aConvertir + " °F correspond à : ");
     
        	          System.out.println(arrondi(convertit, 2) + " °C.");
        	          System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
        	     	 reponse = sc.nextLine().charAt(0);
     
        	        }
        	        else {
        	        	System.out.print("Vous n'avez pas choisi une valeur juste");
        	        }
     
    	    }
     
    	  }
        System.out.print("Good Bye");
     
     
    		}
     
     
    	public static double arrondi(double A, int B) {
     
            return (double) ( (int) (A * Math.pow(10, B) + .5)) / Math.pow(10, B);
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/07/2014, 23h19
  2. Réponses: 4
    Dernier message: 06/06/2004, 13h07
  3. Réponses: 3
    Dernier message: 02/07/2003, 17h24
  4. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo