Probleme de compilation java

[Résolu/Fermé]
Signaler
Messages postés
244
Date d'inscription
samedi 11 avril 2009
Statut
Membre
Dernière intervention
15 janvier 2015
-
Messages postés
244
Date d'inscription
samedi 11 avril 2009
Statut
Membre
Dernière intervention
15 janvier 2015
-
Bonjour,

Je ecrit un petit programme en java qui converti un valeur Celsius en Fahrenheit et Fahrenheit en Celsius.
Mais j'ai un probleme il ne compile pas, je pense pas que j'ai fait une erreur de logique car la logique on la faite en classe avec le prof ça doit surement etre un erreur de grammaire java.

Je vous met le code en espérant que vous pourriez m'aider...
Il y a deux erreurs dans ce programme cela ce passe au niveau de switch.

import java.util.Scanner;

public class Conversion{

public static double celsiusToFahrenheit (double degCelsius){
return 32 + (9/5 * degCelsius);
}

public static double fahrenheitToCelsius (double degFahr){
return 5/9 * (degFahr - 32);
}

public static boolean tempBizarre (double valeur){
return valeur<= -500 || valeur>= 500;
}

public static void affichageUnités(){
System.out.println("c/C = Celsius, f/F = Fahrenheit");
}

public static void conversion (double valeur, char unité){
boolean unitéValide;
switch (unité){
case 1: unité = "c,C" System.out.println("Conversion en degré Fahrenheit de " + valeur + " degrés Celsius:" + celsiusToFahrenheit(valeur));
unitéValide = true;break;

case 2: unité = "f,F" System.out.println("Conversion en degré Celsius de " + valeur + "degré Fahrenheit:" + fahrenheitToCelsius(valeur));
unitéValide = true;break;

default: System.out.println("Pas de conversion possible, unité inconnue!");
affichageUnités();
unitéValide = false;break;
}

if (unitéValide && tempBizarre(valeur)){
System.out.println("La température est bizarre: trop petite ou trop grande!");
}
}

public static void main (String[] args){
Scanner clavier = new Scanner(System.in);
double valeur;
char unité;
System.out.println("Entrez la température:");
valeur = clavier.nextDouble();
affichageUnités();
System.out.println("Entrez l'unité de la température:");
unité = clavier.next().charAt(0);
conversion(valeur,unité);
}
}



3 réponses

Messages postés
16400
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 septembre 2021
2 879
Tu fais switch(unité) avec unité de type char
Tu fais case 1: c'est à dire que tu traites unité comme un entier
Tu fais unité="c,C" c'est à dire que tu modifies la valeur d'unité avec un String
De plus tu as oublié le ; avant les println

Il faut que tu apprennes à lire les erreurs que te donnent le compilateur, mais là c'est assez évident :

switch (unité) 
{ 
case 'c' : case 'C' : 
    // ... 
    break; 

case 'f' : case 'F' : 
    // ... 
    break; 

default:  
    // ... 
    // break; // pas de break dans default, c'est inutile 
}
La confiance n'exclut pas le contrôle
Messages postés
244
Date d'inscription
samedi 11 avril 2009
Statut
Membre
Dernière intervention
15 janvier 2015
7
Merci d'avoir prêter attention a mon problème, je vais faire la correction demain et je te tien au courant.

Merci encore.
Messages postés
244
Date d'inscription
samedi 11 avril 2009
Statut
Membre
Dernière intervention
15 janvier 2015
7
Super ça tourne très bien merci :)