8
Statements
[stmt.stmt]
8.6
Iteration statements
[stmt.iter]
8.6.1
General
[stmt.iter.general]
1
#
Iteration statements specify looping
.
iteration-statement
:
while
(
condition
)
statement
do
statement
while
(
expression
)
;
for
(
init-statement
condition
o
p
t
;
expression
o
p
t
)
statement
for
(
init-statement
o
p
t
for-range-declaration
:
for-range-initializer
)
statement
for-range-declaration
:
attribute-specifier-seq
o
p
t
decl-specifier-seq
declarator
attribute-specifier-seq
o
p
t
decl-specifier-seq
ref-qualifier
o
p
t
[
identifier-list
]
for-range-initializer
:
expr-or-braced-init-list
See
[dcl.
meaning]
for the optional
attribute-specifier-seq
in a
for-range-declaration
.
[
Note
1
:
An
init-statement
ends with a semicolon
.
—
end note
]
2
#
The substatement in an
iteration-statement
implicitly defines a block
scope
which is entered and exited each time through the loop
.
If the substatement in an
iteration-statement
is a single statement and not a
compound-statement
, it is as if it was rewritten to be a
compound-statement
containing the original statement
.
[
Example
1
:
while
(
-
-
x
>
=
0
)
int
i;
can be equivalently rewritten as
while
(
-
-
x
>
=
0
)
{
int
i;
}
Thus after the
while
statement,
i
is no longer in scope
.
—
end example
]