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
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.
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.
It is a local variable to that for block. Outside of that for loop, j will cease to exist.
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 ??"
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.