【发布时间】:2015-07-06 10:46:16
【问题描述】:
我有以下代码:
public class Java0102
{
public static void main(String[] args)
{
int x = 2;
int y = 10;
if (x == 2)
{
x = 5;
int w = y * x;
}
System.out.println("W="+w);
int W = x*y*w;
y = x;
System.out.println("New W="+w);
System.out.println("X="+x);
System.out.println("Y="+y);
}
}
当我尝试在 bluej 上编译它时,它说找不到符号 - 变量 w 但是由于 if 语句运行是因为 x == 2 不应该 java 假定变量 w 已初始化并因此存在?
【问题讨论】:
-
好吧,我可以理解范围,但我认为如果调用方法并且在方法内部声明的变量是本地的,因此范围会发生变化,因此在外部不可见。和 if 语句一样吗?它改变了范围??
-
所以如果我在 if 语句中创建一个变量(声明它),java 认为它是一个不同的内部范围,所以它在 main 的 if 块之外不可见。我想看看是否我已经掌握了这里的概念...感谢您的回复!
标签: java variables scope initialization disambiguation