[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 :-)

6 réponses

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

      Essaye de mettre :

      convertirEN.equals("F") au lieu de convertirEN =="F"
      0
      1. coucou > coucou
         
        Même chose pour convertirEN == "C", remplace le par "convertirEN.equals("C"), car on veut comparer la valeur des deux String.
        0
  4. javahelp
     
    Merci cela fonctionne :-)
    Peut tu m'expliquer la différence entre convertirEN == "C" et convertirEN.equals("C") ?
    Que fait le equals ?
    0
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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