[java] Erreur à l'execution

Résolu/Fermé
javahelp - 9 juil. 2008 à 15:26
  javahelp - 9 juil. 2008 à 18:22
Bonjour,
je suis débutant en programmation et j'ai un problème que je n'arrive pas à résoudre.
Voici la classe :
class ConvertisseurTemperature
{ public int convertirTemperature(int temperature, String convertirEN)
{ int temperatureConvert;
if (convertirEN == "F")
{ temperatureConvert = ((9 * temperature) / 5) + 32;
return temperatureConvert;
}
if (convertirEN == "C")
{ temperatureConvert = ((temperature - 32) * 5) / 9;
return temperatureConvert;
}
else
{ return 0;
}
}
}

et le main :
public class MaitreTemperature
{ public static void main(String[] Args)
{ int temp;
String mes;
System.out.println("Veuillez taper une temperature en C ou F :");
Clavier Clavier = new Clavier();
temp = Clavier.lireInt();
System.out.println("Veuillez taper F ou C pour la conversion :");
mes = Clavier.lireString();
System.out.println("Vous avez taper :" + temp + mes);
ConvertisseurTemperature ConvertisseurTemperature = new ConvertisseurTemperature();
System.out.println("Résultat :" + ConvertisseurTemperature.convertirTemperature(temp, mes));
}
}

Le résultat est toujours le même que je tape F ou C, c'est à dire que le programme affiche toujours 0 en résultat de conversion. Les deux if ne doivent pas fonctionnés mais je ne comprend pas pourquoi.
Pouvez vous m'aider s'il vous plaît ?

Merci :-)
A voir également:

6 réponses

J'ai essayé de remplacé les if par :

switch (convertirEN)
{ case "F" : temperatureConvert = ((9 * temperature) / 5) + 32;
return temperatureConvert;
break;
case "C" : temperatureConvert = ((temperature - 32) * 5) / 9;
return temperatureConvert;
break;
}

Le problème est que j'utilise des valeurs de type int (temperature et temperatureConvert) et String (convertirEN) dans cette méthode ce qui produit une erreur à la compilation.
Comment puis-je faire pour faire 'cohabité' ces deux types dans une même méthode ?

Merci.
0
bonjour,

Ton code fonctionne bien en l'exécutant pour :

temp = 5;
mes = "C";

j'obtient :

Veuillez taper une temperature en C ou F :
Veuillez taper F ou C pour la conversion :
Vous avez taper :5C
Résultat :-15

Je pense que l'erreur vient de ta classe Clavier.
0
J'ai essayé de changé la classe Clavier, sans résultats.
Toujours le même problème :-/
0
Bonjour,

Essaye de mettre :

convertirEN.equals("F") au lieu de convertirEN =="F"
0
coucou > coucou
9 juil. 2008 à 16:21
Même chose pour convertirEN == "C", remplace le par "convertirEN.equals("C"), car on veut comparer la valeur des deux String.
0
Merci cela fonctionne :-)
Peut tu m'expliquer la différence entre convertirEN == "C" et convertirEN.equals("C") ?
Que fait le equals ?
0
Bonjour,

cool,

Objet1 "==" Objet2 : teste l'égalité de la déférence des deux objets.

Objet1.equals(Objet2) : teste l'égalité entre les deux objets.

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tu trouveras la réponse si tu exploites complètement Java, il y a surement une raison mais à notre niveau de programmation je pense que ca nous echappe.
0
Merci beaucoup :-)
0