突然之间,我开始考虑变量的范围规则。我不是编程的新手,这让我更害怕,我不知道这个问题的答案。
我记得读过关于网络上变量范围的变量,他们会有这个例子,他们会在{}
之外声明一个变量,他们会改变{{1}内的值阻止,当它们在这两个不同的范围内打印时,它们会得到不同的结果。
现在,在下面的代码中。
{}
现在,我输出20,30,30。我很好。但后来我在想互联网上那些显示不同结果的例子。所以我想我会在main(){
int a=20;
sysout(a);
if(true){
a=30;
sysout(a);
}
sysout(a);
}
a
代码:
{}
那么,我在网上看到的那个例子究竟是什么呢。如果有人能让我摆脱痛苦。
由于
答案 0 :(得分:3)
这应该是一个例子:
int a=20;
main(){
sysout(a);
if(true){
int a = 30; // now this will shadow the class variable a
sysout(a);
}
sysout(a);
}
现在输出应为:
20 30 20
答案 1 :(得分:0)
无法在本地范围内重新声明局部变量。在第二种情况下,您的变量a
位于main
方法的本地范围内,并且您再次尝试在if块的本地范围内声明它,这是不允许的。
你最好试试这个:
int a=20; //Here a is outside the scope of main, so you can redeclare it.
main(){
sysout(a);
if(true){
int a;
a=30;
sysout(a);
}
sysout(a);
}