无法解析Java函数局部变量
我试图构建一个选择排序程序,当我试图在第二个for循环之后显示arr[index]
值时,我得到了一个编译错误
错误:
j
cannot be resolved to a variable
public static int[] doSelectionSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int index = i;
for (int j = i + 1; j < arr.length; j++)
System.out.println(arr[index]);
if (arr[j] < arr[index])
index = j;
int smallerNumber = arr[index];
arr[index] = arr[i];
arr[i] = smallerNumber;
}
return arr;
}
# 1 楼答案
当你在循环中声明变量j时,它是循环的局部变量,所以如果没有大括号,你不能像你想的那样使用这个变量
# 2 楼答案
您缺少内部
for-loop
中的{
和}
,因此当找到第一个;
时,循环的范围结束。然后:j
在if
条件中不存在# 3 楼答案
改变:
致:
# 4 楼答案
你必须在第二个for循环之后使用{}