【发布时间】:2020-12-08 18:41:08
【问题描述】:
我试图创建一个随机数组,该数组接受用户输入并打印该数量的随机值
例如,如果我输入 5,它将创建一个 [3,4,5,6,6] 的数组
然后我尝试使用插入排序,以便它可以按照正确的顺序从最小值到最大值重新排列值,但是我一直收到此错误
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
j cannot be resolved to a variable
那个错误就在result[j+1] = key;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter Size of Random Number");
int n = input.nextInt();
Random random = new Random();
int[] result = random.ints(n, 0, 10).toArray();
Arrays.stream(result).forEach(System.out::print);
System.out.println("\n");
int len = result.length;
for(int i=1; i<len; i++) {
int key = result[i];
for (int j=i-1; (j >= 0 && result[j] > key); j--) {
result[j + 1] = result[j];
}
result[j+1] = key;
System.out.println(Arrays.toString(result));
}
}
}
【问题讨论】:
-
j只存在于声明它的循环中。 -
我试图把它放回循环中,但是它不会做插入排序
-
如果你在循环外需要它,那么在循环外声明它。
标签: java for-loop debugging insertion-sort