if语句不加{}导致的作用域问题

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表达式最好加上{},一方面可以介绍由于视觉原因导致的错误,另一方面也能避免作用域不确定问题。

posted @ 2019-03-21 14:36  wj-gu  阅读(1107)  评论(0)    收藏  举报