Java 数组索引超出范围异常:2
当我进入出口时,会出现错误Java 数组索引超出范围异常:2,java,exception,multidimensional-array,Java,Exception,Multidimensional Array,当我进入出口时,会出现错误 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 我在编程方面很糟糕,所以请容忍我 import java.util.*; public class Highway{ public static void main(String[] args) { Scanner input = new Scanner(System.in);
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
我在编程方面很糟糕,所以请容忍我
import java.util.*;
public class Highway{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Total number of the exits");
int p=input.nextInt();
System.out.println("The first exit");
int i=input.nextInt();
System.out.println("The second exit");
int j=input.nextInt();
int[]A= new int[p];
for(int w=0;w<=p;i++) {
A[i]=(int )(java.lang.Math.random() * 20 + 1);
System.out.println(A[w]);
}
}
static void Distance(int i, int j, int[] A) {
// a is the array of distance
// this find the distances between i and j
int distance = 0;
if(j>i){
for(int k = i; k<=j;k++) {
distance=distance+A[k];
}
distance=distance-A[i];
}
if(i>j){
for (int m = j; m<=i; m++){distance=distance+A[m];
}
distance=distance-A[j];
}
System.out.println("The distance of the first"+i+" and second exit"+j+" is"+distance);
}
}
import java.util.*;
公共级公路{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“出口总数”);
int p=input.nextInt();
System.out.println(“第一个出口”);
int i=input.nextInt();
System.out.println(“第二个出口”);
int j=input.nextInt();
int[]A=新的int[p];
用于(int w=0;wi){
对于(int k=i;kj){
对于(int m=j;m您的循环将迭代直到p
包含在内,这就是您得到错误的地方!
数组的大小是p
,您应该迭代的索引是0,…,p-1加上您正在增加i
,而不是w
修改:
for(int w=0;w<=p;i++)
for(int w=0;w将for循环更改为以下内容
for(int w=0;w<p;w++) {
A[w]=(int )(java.lang.Math.random() * 20 + 1);
System.out.println(A[w]);
}
for(int w=0;ww这是堆栈跟踪?另外,您是否尝试过单步遍历代码以查看哪一行引发异常?@alfasin在该答案中w
没有增加。此外,用户正在更新A[i]
然后打印A[w]
这将再次向他显示类似的错误。@阿尔法辛希望这也能为其他人澄清:)
for(int w=0;w<p;w++) {
A[w]=(int )(java.lang.Math.random() * 20 + 1);
System.out.println(A[w]);
}