java - 我总是超出这个数组的范围......为什么?

标签 java arrays sorting

问题基本上就是标题......为什么这个程序不喜欢我:3我不断收到“ArrayIndexOutofBoundsException”

public static void main(String[] args) {
   double[] l1 = {1.2, 3.4, 1.2, 3.4, 1.1};
   double[] l2 = {1.2, 1.3, 1.4, 1.5, 1.6};

   isSorted(l1);
   isSorted(l2);

}
public static void isSorted(double[] l1){
    Scanner in = new Scanner(System.in);

     if (l1[2]>l1[1])
         if(l1[3]>l1[2])
             if(l1[4]>l1[3])
                 if(l1[5]>l1[4])
                 System.out.println("True");
     else
                 System.out.println("False");
}

是因为我预先填充了数组吗?

edit2:忽略扫描仪。

编辑3:哇。好的。索引从 0 开始,我是个白痴!

谢谢。 -_-

最佳答案

注意这一点

if(l1[5]>l1[4])

但是 l1 数组中只有 5 个值。但您访问l1[5]

l1[0],l1[1],l1[2],l1[3],l1[4]

这些都是五个值,但您访问l1[5],因此会引发异常。

关于java - 我总是超出这个数组的范围......为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181142/

相关文章:

c - 为什么这个 if 语句为真?不同的arry地址

c++ - 为什么 C++ 需要 6 大小的数组来存储 5 个字母的单词,而 C 只允许 5 个?

Java 二维数组搜索不工作

java - 用按钮绘制矩形

java - 如何将对象从适配器发送到 Activity

java - 在 Brackets 编辑器或 Visual Studio Code 中调试 Java

Java套接字编程: Dealing with multiple types of messages

javascript - 按 'desc' 对对象数组进行排序,首先是数字

sorting - AG-Grid 排序不适用于 TreeData

java - 从函数java返回变量和数组