2017-12-18 129 views
0

我可以通过练习来学习使用数组进行编码的练习。 这基本上是我的问题标题。它应该给我9,8,7,6,...,0,但它只是打印出0,0,0,0,0,...读取Java数组中的10位数字并将其反向打印出来

任何人都可以看到我在这里做错了吗?

public static void main(String[] args) { 
    // TODO code application logic here 
    int intArray[] = new int[9]; 
    for (int i = intArray.length -1; i>=0; i--);{ 
    System.out.println(java.util.Arrays.toString(intArray)); 
} 
} 
+2

你需要阅读本: “如何调试小程序”(https://ericlippert.com/2014/03/05/how-to -debug小程序/)。 –

+2

在循环后删除分号,并打印一个数字,而不是一次打印整个数组。确保阵列中充满了想要反向打印的数字。 – dasblinkenlight

回答

1

您创建lenght 9数组,但你没有它设置的任何值,所以整数,默认零实例化。

你想这样的:

 int intArray[] = new int[]{1,2,3,4,5,6,7,8,9}; 

和循环是错误的,以及,反向打印应该是这样的:

int intArray[] = new int[]{1,2,3,4,5,6,7,8,9}; 
    for (int i = intArray.length -1; i>=0; i--){ 
     System.out.println(intArray[i]); 
    } 

你做了什么 - 打印整个数组。在我的例子中,我在每次迭代中都打印出数组的元素。

并有多余的分号了(...)

更新后:有另一种方式来获得阵列充满了10位。还有一个选择是另一个用于循环:

int intArray[] = new int[10]; 
    for (int i = 0; i < intArray.length; i++) { 
     intArray[i] = i; 
    } 
for (int i = intArray.length -1; i>=0; i--){ 
     System.out.println(intArray[i]); 
    } 

带来同样的结果,如果你有非常大的阵列可以更加得心应手

+0

我猜这个问题中的“读取Java数组中的10个数字”部分很重要,因为有更简单的方法以相反的顺序写入数字0到9。 – Henry

+0

由于作者没有预料到零,我只是解释了他为什么得到它们。 你是指填充数组的循环?对于我来说这是10位数的开销,但我会更新答案 –

0

你的代码有两个错误。

  1. 您需要设置阵列
  2. 的值从循环立即删除分号,所以你的循环运行该语句。

下面的代码运行

public static void main(String[] args) { 

     //need to initalized your array 
     int intArray[] = new int[]{1,2,3,4,5,6,7,8,9}; 
     for (int i = intArray.length -1; i>=0; i--){ 
      System.out.println(intArray[i]); 
     } 
    } 
相关问题