Java 如何防止scanner对象读取超出其在循环中必须读取的任何数据
希望这样更好。我正在编写一个java赋值来实现排序技术。我在循环中使用scanner对象来输入要排序的用户数据。但是,在填充数组并显示索引越界错误后,scanner对象继续读取数据。我该如何处理这个问题Java 如何防止scanner对象读取超出其在循环中必须读取的任何数据,java,arrays,java.util.scanner,Java,Arrays,Java.util.scanner,希望这样更好。我正在编写一个java赋值来实现排序技术。我在循环中使用scanner对象来输入要排序的用户数据。但是,在填充数组并显示索引越界错误后,scanner对象继续读取数据。我该如何处理这个问题 public static void set1(int N) { int i,c,e,f; double a,b; int[] arr1 = new int[N]; int[] arr2 = new int[N]; System.out.println("
public static void set1(int N)
{
int i,c,e,f;
double a,b;
int[] arr1 = new int[N];
int[] arr2 = new int[N];
System.out.println("Please enter numbers to be sorted");
for(i=0;i<=N;i++)
{
Scanner Secondin = new Scanner(System.in);
arr1[i] = Secondin.nextInt();
}
}
从0到并包括N太多。新的int[5]具有插槽0、1、2、3和4。一共5个插槽。arr1[5]是ArrayIndexOutOfBoundsException,因为这是第6个插槽。尝试int i=0;i
if (i == N) {
break;
}
一旦达到极限=N,这将打破for循环。更改i如果您做错了。如果希望数组的大小为N,并且从索引0开始读取,则需要在N-1之前一直只读。一旦索引达到N的大小,就需要退出循环。尝试以下方法:fori=0;我