Bonjour,
Je rencontre un problème de compréhension lié aux variables de type tableau.
Voici un exemple de code fonctionnel :
Ce code est parfaitement fonctionnel. Vous allez me dire, il est où le problème lié à un tableau ? J'y viens...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class ceciestuntest { private final int valeurTest; public ceciestuntest(int val) { valeurTest = val; System.out.println("Valeur donnée : " + val); } }
Voici un code équivalent mais où j'utilise cette fois un tableau d'entier :
Là aussi, pas de problème, ce code fonctionne. Maintenant faisons cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class ceciestuntest { private final int[] valeursTest = {1,2,3,4}; public ceciestuntest() { System.out.println("Valeurs connues :"); for (int i: valeursTest) System.out.println(i); } }
J'utilise Netbeans, et lorsque je rédige la ligne "valeursTest=...", Netbeans m'indique une erreur de syntaxe en précisant qu'il manque le caractère ';' ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public class ceciestuntest { private final int[] valeursTest; public ceciestuntest(int v1, int v2, int v3, int v4) { valeursTest = {v1,v2,v3,v4}; System.out.println("Valeurs donnees :"); for (int i: valeursTest) System.out.println(i); } }
De toute évidence, il n'aime pas voir des accolades ici.
Cependant, si je passe par l'intermédiaire d'un autre tableau, alors il est d'accord :
Je n'arrive pas à comprendre pourquoi je ne peux pas donner directement {v1,v2,v3,v4} à valeursTest ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public class ceciestuntest { private final int[] valeursTest; public ceciestuntest(int v1, int v2, int v3, int v4) { int[] valeursTmp = {v1,v2,v3,v4}; valeursTest = valeursTmp; System.out.println("Valeurs donnees :"); for (int i: valeursTest) System.out.println(i); } }
Partager