Probleme de compilation java

Résolu
hassan.10 Messages postés 244 Date d'inscription   Statut Membre Dernière intervention   -  
hassan.10 Messages postés 244 Date d'inscription   Statut Membre Dernière intervention   -
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é);
}
}



A voir également:

3 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
0
hassan.10 Messages postés 244 Date d'inscription   Statut Membre Dernière intervention   8
 
Merci d'avoir prêter attention a mon problème, je vais faire la correction demain et je te tien au courant.

Merci encore.
0
hassan.10 Messages postés 244 Date d'inscription   Statut Membre Dernière intervention   8
 
Super ça tourne très bien merci :)
0