用Counter打印Java数组

时间:2015-09-12 03:21:50

标签: java arrays

这个java程序应该打印下面数组中的数字:

public class Masterpiece {

    public static void main(String[] args) {

        int laser[] = new int[10];

        Scanner x = new Scanner(System.in);
        System.out.println("Enter 10 numbers.");

        for (int counter = 0; counter < laser.length; counter++) {
            System.out.print("Enter a number: ");
            laser[counter] = x.nextInt();
        }

        Arrays.sort(laser);

        for (int counter = 9; counter <= 0; counter--) {
            System.out.println(laser[counter]); /** line 21 */
        }

        System.out.println("Highest: " + laser[9]);
        System.out.println("Lowest: " + laser[0]);
    }
}

但是,在第21行,它不会打印数组元素。为什么呢?

感谢阅读!

3 个答案:

答案 0 :(得分:1)

for (int counter = 9; counter >= 0; counter--) {
    System.out.println(laser[counter]);
}

但通常情况下,如果你坚持标准形式会更好:

for (int counter = 0; counter < laser.length; counter++) {
    System.out.println(laser[counter]);
}

或者,最好使用增强型结构

for (int val : laser) {
    System.out.println(val);
}

答案 1 :(得分:1)

您的for循环正在向后计数,但循环的条件部分(counter <= 0)正在检查counter是否小于或等于0.自启动{{在9处,这个条件立即失败,因为它不小于或等于0并且循环中没有代码被执行。你想要大于或等于0:

counter

我还建议您在这里使用数组的长度,以便在调整大小时,不必修改循环代码:

for (int counter = 9; counter >= 0; counter--) {

答案 2 :(得分:0)

在for循环中,将计数器初始化为9并告诉循环在9小于或等于0时执行,然后减去1。问题是当程序第一次进入for循环9时不小于0所以该值为false并且它会跳过循环。

更好的循环是:

    For(int counter = 0; counter < 10; counter++)
    {
        System.out.println(laser[counter]);
    }