Let's call the loop with the 'i' value an outer loop, the one with 'j' an inner loop.
Normally, j would run through all of its iterations once for each iteration of i. So you'd expect:
i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
and so on.
That 'outer' label adds a dimension to how things flow. It acts as a known marker in the execution of the loop code. When i and j are equal, the statement 'continue outer' means "stop what you're doing, go to the next iteration of the outer loop, and continue."
This code inserts a check for equality, and performs the equivalent of a 'goto' statement to get out of the otherwise routine execution of loops.
-----------------
Michael Ernest, co-author of:
The Complete Java 2 Certification Study Guide
[This message has been edited by Michael Ernest (edited December 25, 2000).]