public static void main(String[] args) {
if(true)
int i = 1;//error, The left-hand side of an assignment must be a variable
if(true) {
int j = 1;
}
int k = 1;
if(true)
k = 2;
}
Java的变量作用域由花括号{}决定,但是变量i在没有被{}包裹的情况下,Java虚拟机不能判断其作用域是在main方法还是if表达式内,所以报错。而变量j,k都有确定的作用域,所以能够正常使用。
总结:if表达式最好加上{},一方面可以介绍由于视觉原因导致的错误,另一方面也能避免作用域不确定问题。