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

continue, java, keyword

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;

Problem

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?

Original source

Related problems