Output bizarre

Résolu/Fermé
domxaline - Modifié par KX le 25/05/2014 à 21:53
 domxaline - 25 mai 2014 à 21:46
Bonjour,

le prg suivant donne output bizarre quelqu'un peut m'aider svp

import java.util.Arrays;
public class AnotherEuro
{
static int numbers[] = new int[5];
static int luckydip[] = new int[1];
static int luckydip2[] = new int[1];


public static void main(String[] args) {
numbers[0] = (int)(Math.random() * 50) + 1;
numbers[1] = (int)(Math.random() * 50) + 1;
numbers[2] = (int)(Math.random() * 50) + 1;
numbers[3] = (int)(Math.random() * 50) + 1;
numbers[4] = (int)(Math.random() * 50) + 1;

luckydip[0] = (int)(Math.random() * 11) + 1;
luckydip2[0] = (int)(Math.random() * 11) + 1;

Arrays.sort(numbers);

for(int i = 0; i < numbers.length; i++)
{

System.out.println(numbers);
}

System.out.print("First Lucky Dip Number: ");
for(int i = 0; i < luckydip.length; i++)
{
System.out.println(luckydip);
}

System.out.print("Here is your second lucky dip number: ");
for(int i = 0; i < luckydip2.length; i++)
{
System.out.println(luckydip2);
}


}

}

output est:
[I@7cd76237
[I@7cd76237
[I@7cd76237
[I@7cd76237
[I@7cd76237
First Lucky Dip Number: [I@207148e9
Here is your second lucky dip number: [I@6d69c9a2

3 réponses

KX Messages postés 16664 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 21 janvier 2023 2 998
25 mai 2014 à 21:33
Bonjour,

L'affichage est normal, tu lui demandes d'afficher un objet, ça appelle la méthode toString de l'objet, celle-ci n'est pas redéfinie donc par défaut tu as le toString définie dans la classe Object et ça donne l'affichage que tu as, c'est à dire le nom de la classe de l'objet : un tableau d'entier "[I", suivi de "@" puis du hashCode de
l'objet en hexadécimal "7cd76237"

Evidemment ce n'est pas ce que tu veux, toi tu voudrais afficher le contenu du tableau, mais pour cela il faut parcourir chacune des cases du tableau et les afficher une à une avec une boucle for.
Tu peux aussi utiliser une méthode qui fait déjà ce travail à ta place. Exemple :

System.out.println(Arrays.toString(luckydip)); // import java.util.Arrays;
0
je l'ai corrigé comme vous dit,maintenant mon output fait 5 fois

import java.util.Arrays;
public class AnotherEuro
{
static int numbers[] = new int[5];
static int luckydip[] = new int[1];
static int luckydip2[] = new int[1];


public static void main(String[] args) {
numbers[0] = (int)(Math.random() * 50) + 1;
numbers[1] = (int)(Math.random() * 50) + 1;
numbers[2] = (int)(Math.random() * 50) + 1;
numbers[3] = (int)(Math.random() * 50) + 1;
numbers[4] = (int)(Math.random() * 50) + 1;

luckydip[0] = (int)(Math.random() * 11) + 1;
luckydip2[0] = (int)(Math.random() * 11) + 1;

Arrays.sort(numbers);

for(int i = 0; i < numbers.length; i++)
{
System.out.println(Arrays.toString(numbers));

}

System.out.print("First Lucky Dip Number: ");
for(int i = 0; i < luckydip.length; i++)
{
System.out.println(Arrays.toString(luckydip));

}

System.out.print("Here is your second lucky dip number: ");
for(int i = 0; i < luckydip2.length; i++)
{
System.out.println(Arrays.toString(luckydip2));

}


}

}
output est:
[2, 7, 15, 24, 26]
[2, 7, 15, 24, 26]
[2, 7, 15, 24, 26]
[2, 7, 15, 24, 26]
[2, 7, 15, 24, 26]
First Lucky Dip Number: [4]
Here is your second lucky dip number: [5]

0
c'est bon, j'ai corrigé, merci beaucoup
0