局部变量声明一个问题
今日偶遇一局部变量声明的问题,望达人指教~:
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之间定义的,那就没有问题。
这是编译器的检查机制。