2010-04-23 4 views
1

pourquoi je reçois une erreur d'étiquette non définie dans le code suivant ?? j'ignore le code comme il est inutile ...pourquoi je reçois Undefinedlabel erreur dans Java?

loopLabel: 
for(i=0;;i++) 
{ 
    { some code; 
    } 
    { come code; 
    } 
} 

if(condition) 
{ 
    if(condition) 
    { some code  } 
    else 
    { 
      some code; 
      continue loopLabel; 
    } 
} 
+0

vous pouvez mettre continue à l'intérieur si ce qui est à l'intérieur de cette boucle supérieure mais pas en mode autonome si. Parce que c'est utilisé pour casser une boucle, ce qui signifie ignorer tout ce qui reste dans la boucle ici. – ant

Répondre

4

continue est utilisé pour sauter au début d'une nouvelle itération d'une boucle; vous utilisez une étiquette si vous avez des boucles imbriquées et que vous voulez spécifier celle à laquelle vous voulez aller. Vous essayez de l'utiliser comme un goto pour accéder à une section totalement sans rapport avec de code, ce qui est interdit

est quelque chose comme l'usage juridique:

foo: 
while(cond1) { 
    code; 
    while(cond2) { 
     if(cond3) { 
      continue foo; 
     } 
    } 
} 

(Java guide on branching statements)

+0

alors ... y at-il une alternative où je peux obtenir une fonctionnalité exacte comme celle de goto ?? – rohit

+0

heureusement, vous ne pouvez pas – Bozho

+0

En fait, vous pourriez envelopper votre code dans un 'do {...} while (false);' pour pouvoir revenir au début. mais cela conduirait à un code peu clair/indéfinissable, donc il est mal vu. – rsp

2

Parce que vous êtes en dehors de la boucle. L'étiquette est visible uniquement à l'intérieur de la boucle.

Les étiquettes sont utilisées uniquement pour rompre et continuer les boucles.

+0

Ai-je dit quelque chose de mal? – Bozho

+0

Aucune idée, mais je l'ai annulé –

+0

non! Tu n'as rien dit de mal ...! Merci pour votre réponse! – rohit

Questions connexes