You come across something in the data the means stop processing that line and skip to the next one.
So you do 'continue 2;' to skip the inner loop, and anything after it (presumably the code that would do something with all those columns you just got) and simply start a new line.
There are lots of use cases.
Obviously there are other ways: You can use a goto, you can set flag variables, you can use functions in the inner loop to give you a way to exit early.
But this type of control flow is easiest to read. Many other language have this BTW. C doesn't.
It's also good for error handling. If you find an error in the inner loop how do you exit that loop, and the outer one? You would do 'break 2;' and exit both loops.
The labeled version is because using a number is prone to errors if someone changes how many loops there are.
Do a search for 'goto' in high quality code and see how many of them can be replaced by this - it's the vast majority.
One think I would like to see in C and C++ is labeled break/continue:
and/or Similar to goto, but break baz would exit the while loop, not start it again. And using continue instead of goto is more idiomatic.