Is the scope of a local variable always the entire body of a method?
No—only from where the variable was declared until the end of the body. Sometimes a local variable is declared in the middle of the body, close to the statement which first uses it.
It is a mistake to use the same identifier twice in the same scope. For example, the following is a mistake:
class CheckingAccount
{
. . . .
private int balance;
void processCheck( int amount )
{
int amount;
incrementUse();
if ( balance < 100000 )
charge = 15;
else
charge = 0;
balance = balance - amount - amount ;
}
}
The scope of the formal parameter (amount) overlaps the
scope of the local variable ( also named amount),
so this is a mistake.
This is a different situation than the previous one where two separate
formal parameters were both named amount.
In that situation the scopes did not overlap and there was no confusion.