11.2. While Patterns

  • Until

  • Infinite Loop

  • Exit Flag

11.2.1. Until

Has stop conditions

>>> i = 0
>>> until = 3
>>>
>>> while i < until:
...     print('Processing...')
...     i += 1
...
Processing...
Processing...
Processing...

11.2.2. Infinite Loop

Never ending loop. Used in servers to wait forever for incoming connections. Used in games for game logic.

>>> while True:
...     print('Processing...')
...
Processing...
Processing...
Processing...
...

11.2.3. Exit Flag

>>> abort = False
>>>
>>> while not abort:
...     print('Processing...')
...     if ...:  # problem detected
...         print('Abort, Abort, Abort!')
...         abort = True
...
Processing...
Abort, Abort, Abort!

In real life the exit flag pattern is useful if you have for example multi-threaded application. You can kill all the threads if any thread changes the flag. Multi-threaded apps will share this value and kill the loop as soon as the condition will be evaluated.