Search code examples
javalabelcontinue

Why am I getting an "undefined label" error in java?


Why am I getting an undefined label error in following code? (I am leaving out some irrelevant code ...)

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

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


  

Solution

  • continue is used to skip to the start of a new iteration of a loop; you use a label if you have nested loops and you want to specify which one to jump to. You're trying to use it like a goto to jump to a totally unrelated section of code, which isn't allowed

    Legal usage is something like:

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

    (Java guide on branching statements)