loop-and-a-half
A loop structure with its termination test in the middle. This contrasts with the more common while loop which has the test at the beginning or a repeat loop which has it at the end.
A generic example gets a value, tests it then processes it: while (true) {
value = get();
if (isTerminal(value)) break;
process(value);
}
Alternatives require either an extra get() before the loop:
value = get(); while (! isTerminal(value)) process(value); value = get(); }or an extra test for termination:
do {
value = get();
done = isTerminal(value);
if (! done) process(value);
} while (! done);
The structure is discussed, though not named as such, in
[Donald Knuth, "Structured programming with goto statements",
Computing Surveys, December 1974].
A good summary is presented in
[Eric S. Roberts, "Loop Exits and Structured Programming:
Reopening the Debate", ACM SIGCSE, March 1995].
Last updated: 2019-09-03
Nearby terms:
LOOKS ♦ loop ♦ loop-and-a-half ♦ loop combination ♦ loop fusion ♦ LOOPN
Try this search on Wikipedia, Wiktionary, Google, OneLook.
Loading