Although it is perfectly okay to
use a goto to exit a nested loop, many developers prefer not to use gotos. Another way to exit a complicated, nested block of code and go to some specific place is to use the form of the break statement combined with a label. For example:
X:
for (int i = 0; i < x; i++) {
...
Y:
for (int j = 0; j < y; j++) {
...
Z:
for (int k = 0; k < z; k++) {
...
if (some_condition) {
break Y;
}
}
}
...
*
}
If and when
some_condition is true, the labeled break statement is executed and the control will pass to the point marked
*. Executing the labeled break statement terminates the execution of the statement thus labeled.