Output bizarre
Résolu
domxaline
-
domxaline -
domxaline -
Bonjour,
le prg suivant donne output bizarre quelqu'un peut m'aider svp
[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
le prg suivant donne output bizarre quelqu'un peut m'aider svp
output est:
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);
}
}
}
[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
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 :
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;
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]