[java] Erreur à l'execution

Résolu
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 :-)

6 réponses

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

          Essaye de mettre :

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