summaryrefslogtreecommitdiff
path: root/Help/command/while.rst
blob: cb0fa2d3d1ee1b68a32b9e2f02e9dc9bb68b170c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
while
-----

Evaluate a group of commands while a condition is true

.. code-block:: cmake

  while(<condition>)
    <commands>
  endwhile()

All commands between while and the matching :command:`endwhile` are recorded
without being invoked.  Once the :command:`endwhile` is evaluated, the
recorded list of commands is invoked as long as the ``<condition>`` is true.

The ``<condition>`` has the same syntax and is evaluated using the same logic
as described at length for the :command:`if` command.

The commands :command:`break` and :command:`continue` provide means to
escape from the normal control flow.

Per legacy, the :command:`endwhile` command admits
an optional ``<condition>`` argument.
If used, it must be a verbatim repeat of the argument of the opening
``while`` command.

See Also
^^^^^^^^

* :command:`break`
* :command:`continue`
* :command:`foreach`
* :command:`endwhile`