Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours : apprendre à programer en java

Sujet résolu
    16 décembre 2014 à 20:33:50

    Bonjour à tous,

    je suis le cours pour apprendre à programmer en java et j'ai un problème avec ce code :

    import java.util.Scanner;
    
    
    public class class1 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		Scanner  scan = new Scanner (System.in);
    		
    		char tabCarac [] = {'a','b','c','d'};
    		char reponse =' ', lettre = ' ';
    		int incr;
    		
    		do{
    			
    			do{
    				incr = 0;
    				System.out.println ("lettre SVP");
    				lettre = scan.nextLine().charAt(0);
    				
    				while (incr <= tabCarac.length && lettre != tabCarac [incr] )
    					incr++;
    				
    				if (lettre == tabCarac [incr])
    					System.out.println ("c'est bon pour "+ lettre);
    					
    				else
    					System.out.println ("c'est pas bon pour "+ lettre);
    				
    			}while (lettre != tabCarac [incr]);
    			
    			do{
    				System.out.println("recommencer ? o/n");
    				reponse = scan.nextLine().charAt(0);
    			}while (reponse != 'o' && reponse != 'n');
    			
    		}while (reponse == 'o');
    		System.out.print ("fin");
    		
    	}
    
    }

    ça m'affiche cette erreur :

    lettre SVP
    e
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
    	at class1.main(class1.java:22)
    


    Voila je suis bloqué depuis deux heures à essayer de piger pourquoi ça veut pas m'afficher la deuxième partie la condition alors que la première ça marche impec. merci d'avance pour l'aide et bonne soirée.

    • Partager sur Facebook
    • Partager sur Twitter
      16 décembre 2014 à 20:49:19

      Ligne 22 (indiquée dans le message d'erreur), l'indice doit être strictement inférieur à la longueur du tableau.
      • Partager sur Facebook
      • Partager sur Twitter
        17 décembre 2014 à 4:15:05

        effectivement :

        tabCarac.length = 4

        les indices sont 0,1,2,3 il faut donc ecrire :
        incr < tabCarac.length

        • Partager sur Facebook
        • Partager sur Twitter
          19 décembre 2014 à 16:43:05

          Ho et bien merci ça marche on dirait. Sujet résolu
          • Partager sur Facebook
          • Partager sur Twitter

          Cours : apprendre à programer en java

          × 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