Exception in Thread .... [Erreur] - Java - Programmation
MarshPosté le 19-10-2013 à 10:34:14
Bonjour,
Je débute en Java et je rencontre un problème pour un de mes premiers programme. Eclipse ne m'indique aucune erreur mais arrivé à la fin de programme j'ai une erreur "exception in thread" ...
Voici le message d'erreur :
Vouler-vous recommencer ?(O/N) Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source) at Test.main(Test.java:35)
La ligne 35 : Lettre = sc.nextLine().charAt(0);
Ce que je ne comprend pas c'est qu'en faisant exactement ce que je veux faire en dehors d'un programme (sur une autre class vierge), il n'y a aucune erreur ! Même en reprenant par copier/coller la portion qui fait cette erreur, il n'y en a pas sur une class vierge ...
Voici le code complet du programme (c'est un test, je sais multiplier par 2 et 3 ):
Spoiler :
import java.util.*;
public class Test {
public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); char reponse ='o'; int mode = 0; do{ do{ System.out.println("1- Multiplier par 2" ); System.out.println("2- Multiplier par 3" ); System.out.print("Que voulez vous faire ?(1/2) " ); mode = sc.nextInt(); if (mode == 1){ System.out.print("Que voulez-vous multiplier ? : " ); int mult = sc.nextInt(); mult = mult * 2; System.out.println("Résultat : " ); System.out.println(mult); } if (mode == 2){ System.out.print("Que voulez-vous multiplier ? : " ); int mult = sc.nextInt(); mult = mult * 3; System.out.println("Résultat : " ); System.out.println(mult); }
Marsh Posté le 19-10-2013 à 10:34:14
Bonjour,
Je débute en Java et je rencontre un problème pour un de mes premiers programme. Eclipse ne m'indique aucune erreur mais arrivé à la fin de programme j'ai une erreur "exception in thread" ...
Voici le message d'erreur :
Vouler-vous recommencer ?(O/N) Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at Test.main(Test.java:35)
La ligne 35 : Lettre = sc.nextLine().charAt(0);
Ce que je ne comprend pas c'est qu'en faisant exactement ce que je veux faire en dehors d'un programme (sur une autre class vierge), il n'y a aucune erreur ! Même en reprenant par copier/coller la portion qui fait cette erreur, il n'y en a pas sur une class vierge ...
Voici le code complet du programme (c'est un test, je sais multiplier par 2 et 3 ):
import java.util.*;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
char reponse ='o';
int mode = 0;
do{
do{
System.out.println("1- Multiplier par 2" );
System.out.println("2- Multiplier par 3" );
System.out.print("Que voulez vous faire ?(1/2) " );
mode = sc.nextInt();
if (mode == 1){
System.out.print("Que voulez-vous multiplier ? : " );
int mult = sc.nextInt();
mult = mult * 2;
System.out.println("Résultat : " );
System.out.println(mult);
}
if (mode == 2){
System.out.print("Que voulez-vous multiplier ? : " );
int mult = sc.nextInt();
mult = mult * 3;
System.out.println("Résultat : " );
System.out.println(mult);
}
}while ((mode != 1) && (mode != 2));
do{
System.out.print("Vouler-vous recommencer ?(O/N) " );
reponse = sc.nextLine().charAt(0);
}while(reponse != 'O' && reponse != 'N');
}while(reponse == 'O');
System.out.println("Bonjour" );
}
}
Merci d'avance !