[java] Erreur à l'execution

Résolu
javahelp -  
  javahelp -
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

javahelp
 
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
coucou
 
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
javahelp
 
J'ai essayé de changé la classe Clavier, sans résultats.
Toujours le même problème :-/
0
coucou
 
Bonjour,

Essaye de mettre :

convertirEN.equals("F") au lieu de convertirEN =="F"
0
coucou > coucou
 
Même chose pour convertirEN == "C", remplace le par "convertirEN.equals("C"), car on veut comparer la valeur des deux String.
0
javahelp
 
Merci cela fonctionne :-)
Peut tu m'expliquer la différence entre convertirEN == "C" et convertirEN.equals("C") ?
Que fait le equals ?
0
coucou
 
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
Nexus73
 
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
javahelp
 
Merci beaucoup :-)
0