Reputation: 2166
for(int i=0; i<10;i++){
int j=0;
}
Is j a block variable or a local variable? I see that j's scope is only till the for loop ends
Upvotes: 6
Views: 11736
Reputation: 121998
Local variables are declared in methods, constructors, or blocks.
From that it's clear that, All block variables are local variable's.
As per definition of Block
A block is a group of zero or more statements between balanced braces and can be used anywhere a single statement is allowed.
So
{ //block started
} //block ended
What ever the variables declared inside the block ,the scope restricted to that block.
for(int i=0; i<10;i++){
int j=0;
}
So J
scope is restricted to inside that block. That is for loop.
for(int i=0; i<10;i++){
int j=0;
//do some thing with j ---> compiler says "yes boss"
}
//do some thing with j ---> compiler says "Sorry boss, what is j ??"
Upvotes: 10
Reputation: 29416
The word "local" means that something is available somewhere, but not outside the bounds of this "somewhere". In Java variables declared inside a block have a block scope, which means that they're available only inside this block - they're local to it.
Upvotes: 1
Reputation: 43
j variable is accessible inside {this block} only. That not only means that it can't be changed anywhere else, but also it is recreated every time loop loops.
Upvotes: 1
Reputation: 8653
j has scope in the loop only, outside the loop, j can not be accessed. For more on scopes, refer the link, it will be helpful.
Upvotes: 0
Reputation: 2475
It is a local variable to that for block. Outside of that for loop, j will cease to exist.
Upvotes: 2