Hello, en fait c'est pas grand-chose, mais cette syntaxe :
{"red","yellow","orange","green","blue"}
n'est autorisée que comme valeur initiale lors de la déclaration d'une variable tableau :
String[] colors = {"red","yellow","orange","green","blue"};
Elle n'est pas autorisée ailleurs comme simple syntaxe d'expression, car elle ne donne pas assez d'information sur le typage du tableau qu'elle est censée produire. Ce qui n'est pas un problème quand elle ne cherche pas à produire un tableau mais à lui donner ses valeurs.
Ce que tu aurais eu le droit de faire c'est une syntaxe plus complète :
colors = new String[] {"red","yellow","orange","green","blue"};
Ici on dit clairement que le tableau à générer est de type String[], avant d'énumérer les valeurs qu'il doit contenir.
Mais évidemment c'est trop compliqué. Préfère la syntaxe d'avant.
Dans ton code, ces lignes :
1 2
| String[] colors = new String[5];
colors={"red","yellow","orange","green","blue"}; |
ne sont pas valables, mais elles donnent l'impression de faire ceci :
- déclarer une variable de type String[] appelée colors.
- lui assigner un tableau de taille 5, dont toutes les valeurs sont null pour l'instant.
- oublier le tableau précédent après n'avoir rien fait avec. On l'a donc créé pour rien.
- Le remplacer par un nouveau tableau, qui contient les valeurs suivantes "red","yellow","orange","green","blue". C'est 5 valeurs, ce nouveau tableau est donc de taille 5 lui aussi.
Le problème ce sont les étapes 2 et 3, qui font qu'on crée un tableau, on n'en fait rien et on le remplace par un autre.
Il est inutile de d'abord créer un tableau dont on ne spécifie que la taille, puis ensuite énumérer ces valeurs. Si tu énumères les valeurs du tableau, on connaît sa taille puisque c'est le nombre de valeurs.
Il faut donc faire directement :
String[] colors = {"red","yellow","orange","green","blue"};
Partager