2017-04-17 123 views
1

允许只放置一些大括号而没有任何if/for/etc语句来限制变量作用域?自定义变量作用域

一个例子:

public void myMethod() 
{ 
    ... 
    { 
     int x; 
     x = 5; 
    } 
    ... 
} 

我可能要做到这一点,所以我知道我肯定不会访问/修改变量的范围之内,它会被事先破坏

+1

你试过了吗? –

+0

我做了,它的工作,但我不确定是否允许这样做或不。我也试图搜索网络,没有发现任何关于这样的示波器。这就是为什么我决定问 –

+0

[检查此](http://stackoverflow.com/questions/241088/what-do-curly-braces-in-java-mean-by-自己) –

回答

2

是,这是允许的。试试看看你自己

1

大括号{ .. }限制变量的范围到块。
但是,可以对落入{ .. }块范围内的全局变量进行更改。

int x = -1; 
double y = 5; 
{ 
    x = 10; 
    y = 100; 
    char c = 'A'; 
} 
System.out.println(x + " " + y); // 10 100.0 
System.out.println(c); // Compile time error and out of scope 

{ 
    c = 'B'; // Compile time error and out of scope 
}