The for statement

The for statement evaluates a sequence of initialization expressions and then, while a condition is true, repeatedly executes an embedded statement and evaluates a sequence of iteration expressions. for-statement : for(for-initializer;for-condition;for-iterator)embedded-statementfor-initializer : local-variable-declarationstatement-expression-listfor-condition : boolean-expressionfor-iterator : statement-expression-liststatement-expression-list : statement-expressionstatement-expression-list,statement-expression
The for-initializer, if present, consists of either a local-variable-declaration (15.5.1) or a list of statement-expressions (15.6) separated by commas. The scope of a local variable declared by a for-initializer starts at the local-variable-declarator for the variable and extends to the end of the embedded statement. The scope includes the for-condition and the for-iterator.
The for-condition, if present, must be a boolean-expression (14.16).
The for-iterator, if present, consists of a list of statement-expressions (15.6) separated by commas.
A for statement is executed as follows: If a for-initializer is present, the variable initializers or statement expressions are executed in the order they are written. This step is only performed once. If a for-condition is present, it is evaluated. If the for-condition is not present or if the evaluation yields true, control is transferred to the embedded statement. When and if control reaches the end point of the embedded statement (possibly from execution of a continue statement), the expressions of the for-iterator, if any, are evaluated in sequence, and then another iteration is performed, starting with evaluation of the for-condition in the step above. If the for-condition is present and the evaluation yields false, control is transferred to the end point of the for statement.
Within the embedded statement of a for statement, a break statement (15.9.1) may be used to transfer control to the end point of the for statement (thus ending iteration of the embedded statement), and a continue statement (15.9.2) may be used to transfer control to the end point of the embedded statement (thus executing another iteration of the for statement).
The embedded statement of a for statement is reachable if one of the following is true: The for statement is reachable and no for-condition is present. The for statement is reachable and a for-condition is present and does not have the constant value false.
The end point of a for statement is reachable if at least one of the following is true: The for statement contains a reachable break statement that exits the for statement. The for statement is reachable and a for-condition is present and does not have the constant value true.