J'utilise ce code pour méfier certains cercles se chevauchent:
iCantThinkOfAGoodLabelName:
x = genX(radius);
y = genY(radius);
for(i in circles) {
var thisCircle = circles[i];
if(Math.abs(x-thisCircle["x"])+Math.abs(y-thisCircle["y"])>radius*2) { //No overlap
continue;
} else { //Overlap
continue iCantThinkOfAGoodLabelName; //<- Line 256
}
thisCircle = [];
}
4 Réponses :
L'étiquette doit venir immédiatement avant la boucle
x = genX(radius);
y = genY(radius);
iCantThinkOfAGoodLabelName:
for(i in circles) {
Dans ce cas, toute suggestion que je pourrais alors générer les valeurs X et Y seraient très utiles
Edité - Il n'y a aucune raison pour ne pas les générer avant l'étiquette. La présence de l'étiquette n'affecte aucune manière ces lignes.
Une raison pour laquelle cela ne fonctionnerait pas? J'ai suivi les instructions, mais je reçois juste la même erreur.
Il ne devrait pas y avoir de déclaration entre un nom d'étiquette et une boucle associée.
x = genX(radius);
y = genY(radius);
iCantThinkOfAGoodLabelName:
for(i in circles) {
parce que icantthinkofagoodlabelname: code> doit être juste avant la boucle. function iCantThinkOfAGoodFunctionName() {
var x = genX(radius),
y = genY(radius);
for (i in circles) {
var thisCircle = circles[i];
if(Math.abs(x-thisCircle["x"])+Math.abs(y-thisCircle["y"])>radius*2) { //No overlap
continue;
} else { //Overlap
iCantThinkOfAGoodFunctionName();
}
thisCircle = [];
}
}
J'ai récemment eu ce problème et je l'ai résolu en utilisant tous les minuscules dans l'étiquette de la boucle dans la version Utilisation de D'autres vous ont correctement corrigé sur l'emplacement de l'étiquette. Il devrait être immédiatement avant le Le Réseau de développeurs Mozilla sur les étiquettes conseille d'éviter d'utiliser des étiquettes, et préférez plutôt Fonctions d'appel ou Jeter une erreur. Vous pouvez repenser votre stratégie sur les utiliser si possible. P> exemple d'appeler une fonction en fonction du résultat: P> v0.8.x code> de nœud.js. Nom de label: Code> vs. code> iCantthinkofagoodLabelName: code> pourrait vous aider. p> pour code> boucle. P> var i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
// we want to ignore and continue
} else {
// do work with these variables from inside the doWork function
// (scoped to whatever scope `this` for loop is in)
doWork.call(this, i, j);
}
}
}
Avez-vous essayé
break code> au lieu deContinuer code>? Peut-être quecontinuer code> ne peut sauter à une étiquette qui se trouve sur une instruction de boucle.