Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TP.1] Erreur que je n'arrive pas à trouver

???

    17 octobre 2008 à 15:36:00

    Bonjour ami(e)s Zéro,

    Je débute depuis le weekend dernier en JAVA. Et quand je fais le TP1 (tableau de coversion °C en °F) il me sort une erreur. Voyez plutôt :

    Voila le code :
    import java.util.Scanner;
    
    public class sdz1 {
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    	// TODO Auto-generated method stub
    		
    		Scanner sc = new Scanner(System.in);
    		
    		String str;
    		char reprendre;
    		int debut, fin, pas = 0;
    		
    		do{
    				
    			System.out.println("Renseignez la température de départ en °C :");
    			debut = sc.nextInt();
    			System.out.println("Renseignez le température de fin en °C :");
    			fin = sc.nextInt();
    			System.out.println("Renseignez le pas de conversion en °C :");
    			pas = sc.nextInt();
    			
    			
    			do{
    				System.out.println("Voulez vous reprendre? (o/n)");
    				str = sc.nextLine();
    				reprendre = str.charAt(0);
    				
    				if(reprendre != 'o' && reprendre != 'n'){
    					System.out.println("\t\tErreur : Le caratère '" + reprendre + "' n'est pas autorisé !!!\n");
    				}
    			}while(reprendre != 'o' && reprendre != 'n');
    			
    		}while(reprendre == 'o');
    			
    		System.out.println("A bientôt ...");
    			
    	}
    
    }
    


    L'erreur :
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(Unknown Source)
    at sdz1.main(sdz1.java:31)


    Et quand je met en commentaire :
    System.out.println("Renseignez la température de départ en °C :");
    debut = sc.nextInt();
    System.out.println("Renseignez le température de fin en °C :");
    fin = sc.nextInt();
    System.out.println("Renseignez le pas de conversion en °C :");
    pas = sc.nextInt();
    


    il n'y a plus d'erreur.
    Je n'y comprend rien, je ne voie pas d'erreur pourtant, j'ai beau regarder mais je voie pas?

    Merci d'avance ...

    EDIT : l'erreur est au moment de la question :" Voulez vous reprendre? (o/n) "
    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2008 à 15:44:03

      Bonjour

      Citation : dutbas

      str = sc.nextLine();


      Essaye ça
      str=sc.next();
      

      Bonne suite
      • Partager sur Facebook
      • Partager sur Twitter
        17 octobre 2008 à 15:48:19

        Merci, ça marche, mais je ne comprend pas pourquoi?

        Je viens de relire en travers le chapitre "Lire les entrées" et il ne parle pas de cette fonction?
        • Partager sur Facebook
        • Partager sur Twitter

        [TP.1] Erreur que je n'arrive pas à trouver

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown