Output bizarre

Résolu
domxaline -  
 domxaline -
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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
domxaline
 
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
domxaline
 
c'est bon, j'ai corrigé, merci beaucoup
0