Bonjour,
J'ai récemment écrit le programme suivant qui, je ne sais pas pourquoi, ne marche pas. Lorsque je clique sur run, il s'exécute, mais le message suivant apparaît après la question demandant si l'utilisateur veut recommencer (la ligne 41 est celle de "wantToRestart = sc.nextLine().charAt(0);").
"Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at fr.klimex.test1114.Main.main(Main.java:41)"
Et voici le programme :
package fr.monpseudo.monprojet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numberOfAnswer;
int valueToConvert;
int convertedValue;
char wantToRestart = ' ';
do{
System.out.println("Programme de conversion de degrès Celsius en degrès Farenheit\n");
System.out.println("Voulez-vous : ");
System.out.println("1 : Convertir une température donnée en degrès Celsius en degrès Farenheit.");
System.out.println("2 : Convertir une température donnée en degrès Farenheit en degrès Celsius.\n");
System.out.println("Tapez 1 ou 2 pour effectuer votre choix");
numberOfAnswer = sc.nextInt();
while(numberOfAnswer != 1 && numberOfAnswer != 2) {
System.out.println("Erreur : vous n'avez pas donné un nombre correct. ");
System.out.println("Tapez 1 ou 2 pour choisir votre conversion");
numberOfAnswer = sc.nextInt();
}
System.out.println("Maintenant, veuillez donner la valeur à convertir");
valueToConvert = sc.nextInt();
if(numberOfAnswer == 1) {
convertedValue = (9/5)*valueToConvert+32;
System.out.println(valueToConvert + " degrès Celsius correspondent à " + convertedValue + " degrès Farenheit.");
}
else {
convertedValue = ((valueToConvert-32)*5)/9;
System.out.println(valueToConvert + " degrès Farenheit correspondent à " + convertedValue + "degrès Celsius");
}
do{
System.out.println("Souhaitez-vous convertir une autre température ?(O/N)");
wantToRestart = sc.nextLine().charAt(0);
}
while(wantToRestart != 'O' && wantToRestart != 'N');
if (wantToRestart == 'O') {
System.out.println("Vous avez choisi de recommencer.");
}
}
while (wantToRestart == 'O');
}
}
Pourriez-vous me dire quelle est ma faute et me corriger s'il vous plaît ? Merci d'avance.