Java:initializé arrays

Résolu
domxaline -  
 domxaline -
Bonjour,
j'ai un pb initialiser mon arrays;je veux avoir résultat suivant:

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

mais j'ai erreur en compilant mon prg
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at TestArrays2.main(TestArrays2.java:17)

voilà mon prg
public class TestArrays2 
{
	public static void main(String[]args)
	{
		int i;
		int j;
		
		int table [][]=new int [4][4];
		for(i=0;i<5;i++)
		{
			for(j=0;j<5;j++)
			{
				if(i==j)
					table[i][j]=1;
				else
					table[i][j]=0;	
			}
			System.out.print(i);
			System.out.print(j);
		}
	}


veuillez m'aider svp

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Tu as déclaré int table [][]=new int [4][4]; or ton tableau fait 5x5 donc forcément ça plante lorsqu'il essaye d'accéder à la 5è colonne ou à la 5è ligne...
    1
    1. domxaline
       
      int table [][]=new int [3][3];
      

      même en faisant comme ça,j'ai un erreur
      Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
      at TestArrays2.main(TestArrays2.java:17)
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > domxaline
         
        pourquoi [3][3] ? c'est [5][5] qu'il faut mettre !!!
        0
    2. domxaline
       
      si je met 5
      le résultat que je obtiens
      0515253545

      je veux obtenir le résultat suivant:
      1 0 0 0 0
      0 1 0 0 0
      0 0 1 0 0
      0 0 0 1 0
      0 0 0 0 1
      0
      1. KX Messages postés 19031 Statut Modérateur 3 020 > domxaline
         
        Après ton affichage est faux, mais au moins tu n'as plus d'erreur sur le tableau !
        0
  2. domxaline
     
    ok j'ai réussi le prg
    public class TestArrays1  
    { 
        public static void main(String[]args) 
        { 
         int[][]tab =new int[5][5]; 
         for(int i=0;i<tab.length;i++) 
             tab[i][i]=1; 
         //affichage 
         System.out.println("je veux : 0"); 
         for (int i=0;i<tab.length;i++) 
         {  
           for(int j=0;j<tab[i].length;j++) 
               System.out.print(tab[i][j]+""); 
           System.out.print("\n"); 
         } 
             } 
         
         
    } 
    
    0