java - System.out.println() 输出其他东西

标签 java arrays

这是我编写的一些代码,但我无法理解:

public static void main(String[] args){      
    try {
        int l = 14;
        int hold[] = new int[1000];

        int list [] = new int[l];
        for(int i=0;i<=l;i++){
            list[i] = hold[i];
        }

        for(int i=0;i<8;i++){
            System.out.println(list[i]);
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

我预计输出是8行0,但是是14(1行输出) 根据观察,输出取决于代码中的变量 l(为什么)? 我想请问一下为什么会出现这个问题呢?

最佳答案

您超出了数组列表的界限,这会产生异常。

就在这里:

for(int i=0;i<=l;i++){      <=====
        list[i] = hold[i];
    }

应该是l-1。

这是初学者常见的陷阱,所以不用担心,永远记住,在我们拥有的大多数语言中,每个数组或列表都是从 0 开始的。

关于java - System.out.println() 输出其他东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35923633/

相关文章:

java - 检测有 31 天的月份

java - Joda 时间的 LocalDate 间隔

java - 每个线程是否可以有一个唯一的静态变量?

javascript - 从 Canvas 标签内部分的颜色值返回多维 bool 数组?

c++ - 在 C++ 中循环访问 2D tic-tac-toe 数组的好方法?

javascript - 多选输入 - 查找添加和删除项目 Javascript

java - Main方法不打印要返回的数字

java - BaseAdapter 只让我在 ListView Android 中排在第一位

java - 对从文本文件中提取的数据进行排序

javascript - 如何分割jquery数组