Partage
  • Partager sur Facebook
  • Partager sur Twitter

le mot [I@6a5bc8c9

    23 septembre 2016 à 12:39:46

    bonjour,

    quand j'ai exécute mon programme, avec mon output il y a un mot supplémentaire s'afficher

    celle-ci [I@6a5bc8c9 que signifie t il, et comment l’enlever?

    voilà mon output:

    Saissisez un numéro : 4
    Saissisez un numéro : 5
    Saissisez un numéro : 6
    Saissisez un numéro : 7
    Saissisez un numéro : 8
    [I@6a5bc8c9
    Vous avez entrez les numéros suivantes :
    4, 5, 6, 7, 8, [I@6a5bc8c9

    merci d'avance pour votre aides

    voilà mon programme:

    import java.util.Scanner;
    public class TabVar 
    {
     public final int max=5;
     int taille;
     int[] tab;
     
     public TabVar(int taille,int[] tab2)
     {
    	this.taille=taille;
    	this.tab=tab2;
     }
    public int[] saisi() 
    {
    	Scanner sc=new Scanner(System.in);
    	for(int i=0;i<tab.length;i++)
    	{
    		System.out.print("Saissisez un numéro : ");
    		tab[i]=sc.nextInt();
    	}
    	return tab;
    }
    public int[] afficher() 
    {
    	for(int i=0;i<tab.length;i++)
    	{
    		System.out.print(tab[i]+", ");
    		
    	}
    	return tab;
    }
    }
    
    public class TestTabVar 
    {
    	public static void main(String[] args) 
    	{	
    		int max=5;
    		int tab[]=new int[max];
    		TabVar toto=new TabVar(5,tab);
    		System.out.println(toto.saisi());
    		System.out.println("Vous avez entrez les numéros suivantes :");
    		System.out.println(toto.afficher());
    	}
    }



    • Partager sur Facebook
    • Partager sur Twitter
      23 septembre 2016 à 13:41:19

      Bonjour,

      Ton soucis est du au fait que tu retourne un tableau à la fin de tes méthodes d'affichage, et qu'il se retrouve dans un Sysou.
       Donc tu affiches le tableau, donc ton programme te sors l'emplacement mémoire de ton tableau (la référence).

      Pour éviter ça, tu retire tes valeurs de retour en mettant tes méthodes en void, et tu fais directement appelles à elles dans ton main sans passer par un Sysou.

      Au passage, tu utilise déjà un Sysou dans tes méthodes pour afficher les valeurs de ton tableau, pourquoi afficher le tableau ensuite ? Ça n'a pas trop de sens

      -
      Edité par nicolasgaillard 23 septembre 2016 à 13:43:09

      • Partager sur Facebook
      • Partager sur Twitter
        23 septembre 2016 à 14:29:38

        ok, j'ai pris en compte

        maintenant j'ai un autre problème:

        voilà mon output:

        Saissisez un numéro : 4
        Saissisez un numéro : 5
        Saissisez un numéro : 6
        Saissisez un numéro : 7
        Saissisez un numéro : 8
        Vous avez entrez les numéros suivantes :
        4, 5, 6, 7, 8,
        Après modification tableau :
        4, 5, 3, 7, 8,
        Voulez vous entrer un entier (oui/non)oui
        Voulez vous entrer un entier (oui/non)oui
        Voulez vous entrer un entier (oui/non)non
        Au revoir....La taille du tableau est :8

        dans la dernière ligne  taille du tableau est 8, normalement il doit être 7, il prend en compte "non" aussi; pourquoi il est en 8;

        quel est la moyen de résoudre  mon problème svp?

        import java.util.Scanner;
        public class TabVar 
        {
         private final int max=5;
         private int taille;
         private int[] tab;
         
         public TabVar(int taille,int[] tab2)
         {
        	this.taille=taille;
        	this.tab=tab2;
         }
         public void getSaisie()
         {
        	 Scanner sc=new Scanner(System.in);
        		for(int i=0;i<tab.length;i++)
        		{
        			System.out.print("Saissisez un numéro : ");
        			tab[i]=sc.nextInt();
        		}
         }
         public void getAfficher() 
         {
         	for(int i=0;i<tab.length;i++)
         	{
         		System.out.print(tab[i]+", ");
         	}
         }
        
        public void getTaille() 
        {
        	  System.out.println();
        	  String reponse="oui";
        	  do
        	  {
        	   System.out.print("Voulez vous entrer un entier (oui/non)");
        	   Scanner sc1=new Scanner(System.in);
        	   reponse=sc1.nextLine();
        	   taille++;
              }
        	  //while(reponse.equals("oui"));
        	  while((reponse.equals("oui"))||(taille<=max)); 
        	  System.out.print("Au revoir....");
              System.out.print("La taille du tableau est :"+taille);
        	  //return taille-1;	
         }
        }
        
        public class TestTabVar 
        {
        	public static void main(String[] args) 
        	{	
        		int max=5;
        		int tab[]=new int[max];
        		TabVar toto=new TabVar(5,tab);
        		//System.out.println(toto.getSaisie());
        		toto.getSaisie();
        		System.out.println("Vous avez entrez les numéros suivantes :");
        		//System.out.println(toto.getAfficher());
        		toto.getAfficher();
        		tab[2]=3;
        		System.out.println("\nAprès modification tableau :");
        		toto.getAfficher();
        		//System.out.println(toto.getTaille());
        		toto.getTaille();
        	}
        }
        



        -
        Edité par domxaline 23 septembre 2016 à 15:19:32

        • Partager sur Facebook
        • Partager sur Twitter
          23 septembre 2016 à 15:26:35

          Bonjour.

          Correction : ce n'est pas l'adresse mémoire, et le hashCode() (qui n'est pas non plus l'adresse mémoire).

          Pour plus de détails, voir la méthode toString() de la classe Object.

          • Partager sur Facebook
          • Partager sur Twitter
          Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
            23 septembre 2016 à 15:36:37

            Ah désolé pour l'erreur et merci de la correction :)

            Sinon regarde ta boucle do while, tu demandes une réponses, tu agrandis ton tableau et ensuite sois tu sors de ta boucle, sois tu fais un tour de plus.
            Donc sois tu réduis de 1 ta taille après la boucle while sois, tu vérifies ta réponse et si c'est non alors tu sors de ta boucle.

            • Partager sur Facebook
            • Partager sur Twitter
              23 septembre 2016 à 16:21:14

              ça y est j'ai corrigé mon programmes avec vos aides, merci beaucoup

              public void getTaille() 
              {
              	  
              	  System.out.println();
              	  
              	  String reponse="oui";
              	  do
              	
              	  {
              	   System.out.print("Voulez vous entrer un entier (oui/non)");
              	   Scanner sc1=new Scanner(System.in);
              	   
              		   reponse=sc1.nextLine();
              		   if(reponse.equals("oui"))
              		   {
              		     taille++;
              		   }
                    }
              	  while((reponse.equals("oui"))||(taille<=max));
              	  
              	  System.out.print("Au revoir....");
                    System.out.print("La taille du tableau est :"+(taille));	
               }



              -
              Edité par domxaline 23 septembre 2016 à 17:39:50

              • Partager sur Facebook
              • Partager sur Twitter

              le mot [I@6a5bc8c9

              × 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