我无处不在,开始考虑变量的作用域规则。我对编程并不陌生,这使我更加害怕,因为我不知道该问题的答案。
我记得在网络上阅读过有关变量作用域的内容,他们将在此示例中,其中将在{}
之外声明一个变量,并且将更改{}
块内的值以及何时打印在这两个不同的范围内,它们会得到不同的结果。
现在,在下面的代码中。
main(){
int a=20;
sysout(a);
if(true){
a=30;
sysout(a);
}
sysout(a);
}
现在,我得到20,30,30作为输出。我对此很好。但是后来我在想互联网上哪些例子向我展示了不同的结果。所以我想我会在
a
内再次声明{}
码:
main(){
int a=20;
sysout(a);
if(true){
int a; // In java, this gives me error, saying duplicate local variable a.
a=30;
sysout(a);
}
sysout(a);
}
所以,我在网上看到的那个例子到底是什么。如果有人能让我摆脱痛苦。
谢谢
最佳答案
应该以此为例:
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