Home
Manual
Packages
Global Index
Keywords
Quick Reference
|
1.2.4.3 Using break, continue, and goto
The break statement jumps out of the loop containing it. The
continue statement jumps to the end of the loop body,
"continuing" with the next pass through the loop (if any). In
deeply nested loops -- which are extremely rare in Yorick programs
--- you can jump to more general places using the goto
statement. For example, here is how to break out or continue from one
or both levels of a doubly nested loop:
| for (i=1 ; i<=n ; ++i) {
for (j=1 ; j<=m ; ++j) {
if (skip_to_next_j_now) continue;
if (skip_to_next_i_now) goto skip_i;
if (break_out_of_inner_loop_now) break;
if (break_out_of_both_loops_now) goto done;
more_statements_A;
}
more_statements_B;
skip_i:
}
done:
more_statements_C;
|
The continue jumps just after more_statements_A, the
break just before more_statements_B.
Break and continue statements may be used to escape from while
or do while loops as well.
If while tests the condition before the loop body, and do
while checks after the loop body, you may have wondered what to do
when you need to check the condition in the middle of the loop body.
The answer is the "do forever" construction, plus the break
statement (note the inversion of the sense of the condition):
| for (;;) {
body_before_test;
if (!condition) break;
body_after_test;
}
|
|