Search code examples
javakeywordcontinue

What is the "continue" keyword and how does it work in Java?


I saw this keyword for the first time and I was wondering if someone could explain to me what it does.

  • What is the continue keyword?
  • How does it work?
  • When is it used?

Solution

  • A continue statement without a label will re-execute from the condition the innermost while or do loop, and from the update expression of the innermost for loop. It is often used to early-terminate a loop's processing and thereby avoid deeply-nested if statements. In the following example continue will get the next line, without processing the following statement in the loop.

    while (getNext(line)) {
      if (line.isEmpty() || line.isComment())
        continue;
      // More code here
    }
    

    With a label, continue will re-execute from the loop with the corresponding label, rather than the innermost loop. This can be used to escape deeply-nested loops, or simply for clarity.

    Sometimes continue is also used as a placeholder in order to make an empty loop body more clear.

    for (count = 0; foo.moreData(); count++)
      continue;
    

    The same statement without a label also exists in C and C++. The equivalent in Perl is next.

    This type of control flow is not recommended, but if you so choose you can also use continue to simulate a limited form of goto. In the following example the continue will re-execute the empty for (;;) loop.

    aLoopName: for (;;) {
      // ...
      while (someCondition)
      // ...
        if (otherCondition)
          continue aLoopName;