很有意思的问题,下面这段代码会输出预期的结果,int x在代码块中被赋值,而后在主方法内再次定义并赋值,结果是100
/**
* 普通代码块中的局部变量
* @author zendao
*/
public class CodeBlock {
public static void main(String args[]) {
{
// 普通代码块
int x = 30;
}
int x = 100;
System.out.println(x);
}
}
然而,下面这样写,却会报错:
/**
* 普通代码块中的局部变量
* @author zendao
*/
public class CodeBlock {
public static void main(String args[]) {
int x = 100;
{
// 普通代码块
int x = 30;
}
System.out.println(x);
}
}
报错的原因是:variable x is already defined in method main(String[])
???