Erreur programme java débutant

  • Auteur de la discussion vailhenathanael
  • Date de début

vailhenathanael

Nouveau membre
Salut à tous, je suis totalement débutant en Java et je suis les cours sur OpenClassrooms, j'en suis à un TP de conversion Celsius / Fahreneit, mais j'ai des erreurs dont je ne comprends pas la raison...

Voici mon programme :

import java.util.Scanner;
public class Celsius {

public static void main(String[] args) {
// TODO Auto-generated method stub


Scanner sc = new Scanner(System.in);

char mode = ' ';
char tacon = ' ';
char tcon = ' ';
char rep = ' ';

do {
System.out.println("Bienvenue dans votre convertisseur de température !");
System.out.println("Choisissez votre mode de conversion :");
System.out.println("1 - Degrés Celsius vers Fahreneit");
System.out.println("2 - Degrés Fahreneit vers Celsius");

mode = sc.nextLine().charAt(0);

if(mode != '1' && mode != '2');
System.out.println("Oups... Veuillez choisir un mode proposé (1 ou 2);");


}while(mode != '1' && mode != '2');

System.out.println("Très bien. Ecrivez la température à convertir sans espace ni unité...");
tacon = sc.nextLine().charAt(0);

if(mode==1){
tcon = (char) (((9.0/5.0) * tacon) + 32.0);
System.out.println(tacon + "°C est égal à" + tcon + "°F");
}

else {
tcon = (char) (((9.0/5.0) * tacon) + 32.0);
System.out.println(tacon + "°F est égal à " + tcon + "°C");
}

Et autant dire que le programme ne fonctionne pas du tout... Voici la console...

Bienvenue dans votre convertisseur de température !
Choisissez votre mode de conversion :
1 - Degrés Celsius vers Fahreneit
2 - Degrés Fahreneit vers Celsius
2
Oups... Veuillez choisir un mode proposé (1 ou 2);
Très bien. Ecrivez la température à convertir sans espace ni unité...
30
3°F est égal à {°C

Déjà la phrase "Oups....." n'est censée sortir qu'en cas d'erreur de choix de mode de conversion, puis autant dire que le résultat console "3°F (alors que j'en tape 30) est égal à {°C", ce n'est pas vraiment ce que j'attendais...
Merci par avance de l'attention que vous porterez à ma requête et j'espère que quelqu'un pourra m'aider...
Bon samedi !
 

AccroPC2

Fou du PC
Staff
Hello,

Que du bien classique, des erreurs de cast de type qui finalement donnent n'importe quoi, et ta formule F => C est fausse. J'ai retiré les caractères spéciaux car mon terminal ne les supportent pas :

Java:
import java.util.Scanner;
public class Celsius {

    public static void main(String[] args) {
    // TODO Auto-generated method stub


    Scanner sc = new Scanner(System.in);

    char mode = ' ';
    double tacon = ' ';
    double tcon = ' ';
    char rep = ' ';

    while(mode != '1' && mode != '2'){
        System.out.println("Bienvenue dans votre convertisseur de temperature !");
        System.out.println("Choisissez votre mode de conversion :");
        System.out.println("1 - Degres Celsius vers Fahreneit");
        System.out.println("2 - Degres Fahreneit vers Celsius");
        mode = sc.nextLine().charAt(0);
    }
    
    

    if(mode != '1' && mode != '2'){
        System.out.println("Oups... Veuillez choisir un mode propose (1 ou 2);");
    };

    System.out.println("Tres bien. Ecrivez la temperature à convertir sans espace ni unite...");
    tacon =  sc.nextDouble();
    System.out.println("tacon : "+tacon );
    if(mode=='1'){
        tcon = (((9.0/5.0) * tacon ) + 32.0) ;
        System.out.println(tacon + " C est egal a " + tcon + " F");
    } else {
        tcon = ((5.0/9.0) * (tacon - 32.0) );
        System.out.println(tacon + " F est egal a " + tcon + " C");
    }
    }
}

Bienvenue dans votre convertisseur de temperature !
Choisissez votre mode de conversion :
1 - Degres Celsius vers Fahreneit
2 - Degres Fahreneit vers Celsius
1
Tres bien. Ecrivez la temperature ? convertir sans espace ni unite...
10
tacon : 10.0
10.0 C est egal a 50.0 F
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 832
Membres
1 586 367
Dernier membre
ramkin
Partager cette page
Haut