java - IndexOutOfBound Java 异常无法分析错误
问题描述
我知道当我们在索引中插入一个大于数组大小的元素时会出现此错误,但我仍然无法弄清楚为什么我会遇到这样的问题我已经很好地分析了代码但无法弄清楚问题。
/*package whatever //do not write package name here */
import java.util.*;
import java.lang.*;
import java.io.*;
class Test {
public static void main (String[] args) {
//code
Scanner sc = new Scanner(System.in);
System.out.println("Enter T value");
int t = sc.nextInt();
while(t > 0){
System.out.println("Enter Array Size");
int n = sc.nextInt();
int a[] = new int[n];
System.out.println("Enter Array Element");
for(int i = 0;i<n; i++){
a[i] = sc.nextInt();
}
for(int i = 0; i<n; i++){
int min = i;
for(int j = i; j<n;j++){
if(a[j] < a[min]){
min = a[j];
}
}
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
for(int el : a){
System.out.print(el + " ");
}
t--;
}
}
}
解决方案
尝试将 1 添加到 n 以获得元素大小。如果您说 10 个元素,则数组将包含 0-9 个元素。如果选择第 10 项,则比为数组设置的大小多 1
推荐阅读
- sql - 在 SQL 中使用 WHERE 条件,其中参数可以为 NULL
- c - c程序计算圆的面积
- wordpress - XPath:仅当同一节点中的值低于另一个值时选择元素
- json - 无法使用 luis 响应中的 json 路径提取意图和得分
- python - 如何让 cpython 显示正确的十六进制值
- visual-studio - 无法为 Visual Studio 2017 加载文件或程序集“Microsoft.VisualStudio.DataTools.Interop”
- c++ - 如何围绕任意成员函数编写通用非成员包装器?
- java - 构造函数参数传递
- geometry - 在 AutoCAD 图表中缩放长度
- c++ - 在新项目中包含头库会显示重复的“constexpr”错误