2016-05-25 170 views
-3

我试图以相反的顺序打印一个数组,但我不太清楚该怎么做。以相反顺序打印阵列

这是我有:

static void array1() { 
    int number [ ] = {1, 3, 5, 7, 9}; 

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

究竟做我需要做什么?我已经得到了使用tal.length-1访问最后一个元素的提示。

另外,number.length究竟做了什么,为什么它需要> i才能在for循环中打印代码?

+0

关于数组(特别是解释“长度”的部分),您阅读过哪些教程(因为您阅读了一篇,对吗?)会让您感到困惑? – Pshemo

+1

只需...'我=长度1; i> = 0;我 - ' –

+1

我投票结束这个问题作为题外话题,因为:“[3.问题要求作业帮助必须包括**迄今为止您完成的工作**摘要来解决问题,和**解释它的难度**的描述。](http://stackoverflow.com/help/on-topic)“。您问题的当前状态不符合这些要求。使用[编辑]选项来改进它。也请阅读[给学生打开写作业问题的公开信](http://meta.programmers.stackexchange.com/q/6166) – Pshemo

回答

0

长度函数返回数组的大小。在你的情况下,number.lenght将返回5.数组中的每个元素都有一个索引,在Java索引中从0开始,这意味着在你的数组中,1在位置(索引)0等等,直到最后一个元素9 .. 。你猜测它是位置4不是5.

所以说,当你迭代你的数组时,你必须使用length-1(它是4)来访问所有元素(从0到4)。

如果你想向后打印你的数组,你必须从最后开始并递减计数器。简单地改变

for (int i = 0; i < number.length; i++) 

for (int i = number.length-1; i = 0; i--) 
0

正确的条件for循环是:

for (int i = numbers.length - 1; i >= 0; i--) 

for (int i = numbers.length - 1; i > -1; i--) 

你从length-1开始的原因是因为那是最后一个元素。数组中的项目被索引;从零开始(0)。这意味着最后一个元素的索引比长度小一个。

然后,您将评估当前索引是否大于零,因为我们在循环中从索引中减去一(1)。一旦我们接近零(0),我们再次执行循环,因为我们需要第一个索引元素。

现在我们已经在数组上循环了;从结束开始并开始。

相关问题