标题是什么意思呢?可能有人说我是瞎说,看看下面你就会明白了!
例子
if(true)
String s=new String ("hello world");
就这样两句,如果你在你的程序里能够通过编译,那算你厉害,为什么通不过呢?原因就是第2行语句,并不是一个有效的语句,因为在if里声明的局部变量只能在if语句包围的范围引用,而上面的写法,说明if语句只包含一个变量的声明,也就是说声明的这个变量没有一点作用,当然编译器就不会通过编译了.
但是编译器也是足够的傻,看看下面就知道了
if(true){
String s=new String ("hello world");
}
这样写就可以通过编译,和上面的只差一个花括号,把语句括起来,编译器就会以为它是一个语句快,而不管实际中它是不是.你说编译器傻不傻!