Names declared in the init-statement, the for-range-declaration, and in the
condition of if, while, for, and
switch statements are local to the if, while,
for, or switch statement (including the controlled
statement), and shall not be redeclared in a subsequent condition of
that statement nor in the outermost block (or, for the if
statement, any of the outermost blocks) of the controlled statement.