4
for(int i=0; i<10;i++){
 int j=0;
}

ja 块变量还是局部变量?我看到 j 的作用域只到 for 循环结束

4

5 回答 5

9

局部变量在方法、构造函数或块中声明。

从中可以清楚地看出, 所有块变量都是局部变量。

根据块的定义

块是一组位于平衡大括号之间的零个或多个语句,可以在任何允许使用单个语句的地方使用。

所以

{   //block started

}    //block ended

无论在块内声明的变量是什么,范围都限于该块。

for(int i=0; i<10;i++){
 int j=0;
}

因此J范围仅限于该块内。那是for循环。

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 ??"
于 2013-10-19T06:53:44.107 回答
2

它是 for 块的局部变量。在 for 循环之外, j 将不复存在。

于 2013-10-19T06:32:05.897 回答
1

j 变量只能在 {this block} 内访问。这不仅意味着它不能在其他任何地方更改,而且每次循环时都会重新创建它。

于 2013-10-19T06:45:32.157 回答
0

j 只在循环内有作用域,在循环外, j 不能被访问。有关范围的更多信息,请参阅链接,这将很有帮助。

于 2013-10-19T06:38:54.050 回答
0

“本地”一词意味着某处可以使用某些东西,但不在此“某处”的范围之外。在块内声明的 Java 变量具有块作用域,这意味着它们仅在此块内可用 - 它们是它的本地变量。

于 2013-10-19T07:06:03.587 回答