<h3 id="For_statements">For statements</h3>
<p>
-A "for" statement specifies repeated execution of a block. The iteration is
-controlled by a condition, a "for" clause, or a "range" clause.
+A "for" statement specifies repeated execution of a block. There are three forms:
+The iteration may be controlled by a single condition, a "for" clause, or a "range" clause.
</p>
<pre class="ebnf">
Condition = Expression .
</pre>
+<h4 id="For_condition">For statements with single condition</h4>
+
<p>
In its simplest form, a "for" statement specifies the repeated execution of
a block as long as a boolean condition evaluates to true.
}
</pre>
+<h4 id="For_clause">For statements with <code>for</code> clause</h4>
+
<p>
A "for" statement with a ForClause is also controlled by its condition, but
additionally it may specify an <i>init</i>
for { S() } is the same as for true { S() }
</pre>
+<h4 id="For_range">For statements with <code>range</code> clause</h4>
+
<p>
A "for" statement with a "range" clause
iterates through all entries of an array, slice, string or map,