2016-05-25 167 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),我們再次執行循環,因爲我們需要第一個索引元素。

現在我們已經在數組上循環了;從結束開始並開始。

相關問題