The for and as constructs provide iteration control clauses that establish a variable to be initialized. for and as clauses can be combined with the loop keyword and to get parallel initialization and stepping. Otherwise, the initialization and stepping are sequential.
The with construct is similar to a single let clause. with clauses can be combined using the loop keyword and to get parallel initialization.
For more information, see Section 6.1.2 (Variable Initialization and Stepping Clauses).