Compilateur Java N IDE

  • Auteur de la discussion zakaria.fakhri
  • Date de début

zakaria.fakhri

Nouveau membre
Bonjour à tous ,
Je souhaiterai SVP avoir un petit coup de pouce sur un programme de convertisseur °C en °F et vice verca.
Mon programme compile bien mais crash d un coup lors de son execution . Plusieurs messages d erreur s affiche alors. Je vous met ci joint le code du programme ainsi que son resultat puis les messages d erreurs.
L'environnement est JAVA N IDE pour Android.

En vous remerciant davance pour vos réponses.
Code :

package com;
import java.util.Scanner ;
import java.util.*;

public class Convertisseur {
public static void main(String[] args) {
char choixConvert ='O' ;
char choixRep ;
Scanner scDeg = new Scanner(System.in);
double varC , varF ;

System.out.println("CONVERTISSEUR DEGRÉS Celcius et Fahrenheit");

do {
System.out.println("Choisissez mode de conversion :");
System.out.println("1- Degrés Celcius en Fahrenheit.");
System.out.println("2- Degrés Fahrenheit en degrés Celcius.");
choixRep = scDeg.nextLine().charAt(0);

if( choixRep== '1') {
System.out.println("Quel est la valeur a convertir ?");
varC = scDeg.nextDouble();
varF= (((varC*9)/5)+32) ;
System.out.println(" La valeur " +varC+ " °C vaut " +varF+ " °F. ");
}
else if (choixRep == '2') {
System.out.println("Quel est la valeur a convertir ?");
varF = scDeg.nextDouble() ;
varC = (((varF-32)*5)/9);
System.out.println(" La valeur " +varF+"°C vaut "+varC+"°F");
}
do{
System.out.println (" Voulez vous recommencer ?");
choixRep = scDeg.nextLine().charAt(0);
scDeg.close();}
while ((choixConvert !='O') && (choixConvert !='N'));

System.out.println("Au revoir ");


}
while(choixConvert == 'O');
}}



Programme :

CONVERTISSEUR DEGRÉS Celcius et Fahrenheit
Choisissez mode de conversion :
1- Degrés Celcius en Fahrenheit.
2- Degrés Fahrenheit en degrés Celcius.
1
Quel est la valeur a convertir ?
45
La valeur 45.0 °C vaut 113.0 °F.
Voulez vous recommencer ?
java.lang.StringIndexOutOfBoundsException: length=0; index=0
at java.lang.String.charAt(Native Method)
at com.Convertisseur.main(Convertisseur.java:34)
at java.lang.reflect.Method.invoke(Native Method)
at com.duy.android.compiler.java.Java.run(Java.java:115)
at com.duy.ide.javaide.run.activities.ExecuteActivity.executeDex(ExecuteActivity.java:147)
at com.duy.ide.javaide.run.activities.ExecuteActivity.exec(ExecuteActivity.java:124)
at com.duy.ide.javaide.run.activities.ExecuteActivity.access$100(ExecuteActivity.java:45)
at com.duy.ide.javaide.run.activities.ExecuteActivity$1.run(ExecuteActivity.java:88)
at java.lang.Thread.run(Thread.java:818
 

globulle93

Habitué
bonjour

a tester

Java:
import java.util.Scanner;
class Sdz1 {
public static void main(String[] args) {
//Notre objet Scanner
Scanner sc = new Scanner(System.in);
//initialisation des variables
double aConvertir, convertit=0;
char reponse=' ', mode = ' ';
System.out.println("CONVERTISSEUR DEGRÉS CELSIUS ET DEGRÉS FAHRENHEIT");
System.out.println("-------------------------------------------------");
do{//tant que reponse = O//boucle principale
do{//tant que reponse n'est pas O ou N
mode = ' ';
System.out.println("Choisissez le mode de conversion : ");
System.out.println("1 - Convertisseur Celsius - Fahrenheit");
System.out.println("2 - Convertisseur Fahrenheit - Celsius ");
mode = sc.nextLine().charAt(0);
if(mode != '1' && mode != '2')
System.out.println("Mode inconnu, veuillez réitérer votre choix.");
}while (mode != '1' && mode != '2');
//saisie de la température à convertir
System.out.println("Température à convertir :");
aConvertir = sc.nextDouble();
//Pensez à vider la ligne lue
sc.nextLine();
//Selon le mode, on calcule différemment et on affiche le résultat
if(mode == '1'){
convertit = ((9.0/5.0) * aConvertir) + 32.0;
System.out.print(aConvertir + " °C correspond à : ");
System.out.println(arrondi(convertit, 2) + " °F.");
}
else{
convertit = ((aConvertir - 32) * 5) / 9;
System.out.print(aConvertir + " °F correspond à : ");
System.out.println(arrondi(convertit, 2) + " °C.");
}
//On invite l'utilisateur à recommencer ou à quitter
do{
System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
reponse = sc.nextLine().charAt(0);
}while(reponse != 'O' && reponse != 'N');
}while(reponse == 'O');
System.out.println("Au revoir !");

//Fin de programme
}
public static double arrondi(double A, int B) {
return (double) ( (int) (A * Math.pow(10, B) + .5)) / Math.pow(10, B);

}
}

décortique le code :D
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 059
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut