下面的代码编译不通过
if(true)
String st="";
下面的两段代码编译都可以通过
if(true)
{
String st="";
}
String str;
if(true)
str="";
第一段代码无法通过编译的原因:
主要原因是作用域的问题:
String st="";
因为该语句不在大括号内,他的作用域相当于全局变量。
如果if语句,为false
语句将不会被执行,相当于st变量未被声明
但st却是一个全局变量
如果后面的程序调用了st,相当于调用了一个没有被声明的变量