[Minecraft] Problème avec les tableaux
Résolu
Helh
-
Helh -
Helh -
Bonjour,
Je débute en Java, et j'aimerai avoir quelque éclaircissements sur les tableaux car je suis complètement bloqué. Voici mon code en question :
Je dois au final obtenir 3 variables qui sont des tableaux de double, sachant que je ne peux pas prévoir à l'avance quel devra être la taille du tableau ni ce qu'il contiendra (à part que ce seront des doubles).
J'ai un peu de mal avec la déclaration et la gestion des tablraux.
Lors de la compilation, à peu près toutes les lignes concernées par un tableau génèrent une erreur (error: not a statement, error: ';' expected ou error: ']' expected).
Je vous remercie par avance.
Je débute en Java, et j'aimerai avoir quelque éclaircissements sur les tableaux car je suis complètement bloqué. Voici mon code en question :
double cornersX[];
double cornersY[];
double cornersZ[];
if (type == "area") {
if (keys.contains("corners")) {
CArray givenCorners = Static.getArray(optionArray.get("corners", t), t);
if (givenCorners.inAssociativeMode()) {
throw new ConfigRuntimeException("The corners array must not be associative.", ExceptionType.CastException, t);
}
MCLocation cornerLocation;
cornersX[] = new double[givenCorners.size()];
cornersZ[] = new double[givenCorners.size()];
for (String index : givenCorners.keySet()) {
cornerLocation = ObjectGenerator.GetGenerator().location(givenCorners.get(index, t), mcworld, t);
cornersX[Integer.parseInt(index)] = cornerLocation.getX();
cornersZ[Integer.parseInt(index)] = cornerLocation.getZ();
}
} else {
cornersX[] = {spawnLocation.getX()};
cornersZ[] = {spawnLocation.getZ()};
}
cornersY[] = null;
} else if (type == "polyline") {
if (keys.contains("corners")) {
CArray givenCorners = Static.getArray(optionArray.get("corners", t), t);
if (givenCorners.inAssociativeMode()) {
throw new ConfigRuntimeException("The corners array must not be associative.", ExceptionType.CastException, t);
}
MCLocation cornerLocation;
cornersX[] = new double[givenCorners.size()];
cornersY[] = new double[givenCorners.size()];
cornersZ[] = new double[givenCorners.size()];
for (String index : givenCorners.keySet()) {
cornerLocation = ObjectGenerator.GetGenerator().location(givenCorners.get(index, t), mcworld, t);
cornersX[Integer.parseInt(index)] = cornerLocation.getX();
cornersZ[Integer.parseInt(index)] = cornerLocation.getY();
cornersZ[Integer.parseInt(index)] = cornerLocation.getZ();
}
} else {
cornersX[] = {spawnLocation.getX()};
cornersY[] = {spawnLocation.getY()};
cornersZ[] = {spawnLocation.getZ()};
}
} else {
cornersX[] = null;
cornersY[] = null;
cornersZ[] = null;
}
Je dois au final obtenir 3 variables qui sont des tableaux de double, sachant que je ne peux pas prévoir à l'avance quel devra être la taille du tableau ni ce qu'il contiendra (à part que ce seront des doubles).
J'ai un peu de mal avec la déclaration et la gestion des tablraux.
Lors de la compilation, à peu près toutes les lignes concernées par un tableau génèrent une erreur (error: not a statement, error: ';' expected ou error: ']' expected).
Je vous remercie par avance.
A voir également:
- [Minecraft] Problème avec les tableaux
- Minecraft gratuit - Télécharger - Stratégie
- Tableaux croisés dynamiques - Guide
- Les tableaux word - Guide
- Fusionner deux tableaux excel - Guide
- Minecraft pocket edition - Télécharger - Éducatifs
2 réponses
Les crochets spécifient le tableau sur son type, pas sur les variables.
Il faut donc écrire
Tu n'utiliseras les crochets sur les variables que pour référencer une case du tableau, en précisant alors l'indice de celui-ci.
Remarque : il ne faut jamais comparer deux objets avec l'opérateur == qui compare la référence de l'objet, mais pas leurs valeurs. Utilises plutôt la méthode equals, par exemple en remplaçant
La confiance n'exclut pas le contrôle
Il faut donc écrire
double[] cornersX;à la place de
double cornersX[];puis utiliser
cornersXsans les crochets. Idem pour
cornersYet
cornersZ.
Tu n'utiliseras les crochets sur les variables que pour référencer une case du tableau, en précisant alors l'indice de celui-ci.
cornersX[0]; cornersX[1]; ...
Remarque : il ne faut jamais comparer deux objets avec l'opérateur == qui compare la référence de l'objet, mais pas leurs valeurs. Utilises plutôt la méthode equals, par exemple en remplaçant
if (type == "area")par
if (type.equals("area")).
La confiance n'exclut pas le contrôle