日期:2014-05-20  浏览次数:20898 次

局部变量声明一个问题
今日偶遇一局部变量声明的问题,望达人指教~:


  public void directInsertMethod(int[] source) {
for (int i=1;i<source.length;i++){
if (source[i]<source[i-1])
int temp=source[i];//此处为何不能声明变量
}

}


附错误提示:“?"Multiple markers at this line
- Syntax error on token "int", delete this token
- temp cannot be resolved"
  ”

------解决方案--------------------
if后台将int temp这行加上{}就没错。如果不加,因为if后只能有一行代码,这里就不能定义变量了(因为定义了也没有代码能用到这个变量),如果temp是在if之间定义的,那就没有问题。
这是编译器的检查机制。