Probleme de compilation java

Résolu/Fermé
hassan.10 Messages postés 244 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 15 janvier 2015 - 10 nov. 2011 à 18:32
hassan.10 Messages postés 244 Date d'inscription samedi 11 avril 2009 Statut Membre Dernière intervention 15 janvier 2015 - 11 nov. 2011 à 14:46
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 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
Modifié par KX le 10/11/2011 à 19:00
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 samedi 11 avril 2009 Statut Membre Dernière intervention 15 janvier 2015 8
11 nov. 2011 à 01:20
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 samedi 11 avril 2009 Statut Membre Dernière intervention 15 janvier 2015 8
11 nov. 2011 à 14:46
Super ça tourne très bien merci :)
0