我不明白为什么这会超出范围,你能帮帮我吗?
会发生什么:
由于某些原因,在列表中的第一项之后它出了界限,但我不明白为什么。
import java.util.Scanner; //import scanner
public class project2 {
public static void main (String[] args){
Scanner input = new Scanner(System.in); //scanner for input
int a = 0;
double [] lista = new double [a]; //create array
double [] listb = new double [a]; //create array
System.out.println("How long are the lists? ");
System.out.print("(The lists should be the same length): ");
a = input.nextInt();
int count=1;
System.out.println("Enter numbers for list A:");
for(int j = 0; j < a-1 ; j++){ //user input numbers loop into array "list"
System.out.print(count + ": ");
lista[j] = input.nextDouble();
count++;
}
}
}
答案 0 :(得分:5)
当您声明lista
和listb
数组时,使用a
作为长度,但那时它是0
。您尚未将用户的值分配给a
。
在之后创建数组,你有输入的长度。
a = input.nextInt();
double [] lista = new double [a]; //create array
double [] listb = new double [a]; //create array
答案 1 :(得分:3)
你创建了带有0元素的数组,如果你为一个大于1的数字输入任何数字,它将尝试查看超出范围的索引1