2017-05-22 28 views
-1
class Zillion { 

    private int zilly[]; 

    public Zillion(int size){ 
     zilly = new int[size]; 
    } 

    public void increment(){ 
     int i=zilly.length -1; 
     while(i>=0){ 
      if(zilly[i]!=9){ 
       zilly[i]+=1; 
       i=-1; 
      } 
      else{ 
       zilly[i]=0; 
       i--; 
      } 
     } 
    } 

我剛剛得到了一個像這樣的基本java代碼,不知道這個部分的長度-1是什麼意思(int i=zilly.length -1;)。 有人可以解釋一下嗎?Java代碼長度-1意思是

+4

的'zilly []的最高有效索引'陣列是'zilly。長度 - 1「。因此,代碼從最高位置開始向後遍歷該數組。 –

+0

這段代碼究竟在幹什麼?它看起來像它總是會在最初的迭代中終止,因爲我會變成-1 ...? –

+0

@Jay如果你做桌面​​測試,你可能可以自己弄清楚它是如何工作的。 – Henry

回答

0

這意味着我們想要得到數組中的最後一個索引。 然後我們從結尾開始循環數組。

zilly.length它的數組的大小 - 但數組的索引從0開始,因此最後一個索引是zilly.length-1

+0

如計算機科學,我們在0而不是1開始的索引時,我們要一個列表的末尾長度爲10的說,我們需要訪問索引9長度爲n的最後一個項目的名單將是'N- 1' –

+0

謝謝我的朋友 –

0

int i=zilly.length -1;是數組的最後一個索引,因爲數組索引0開始。

一個方面,這個代碼的格式化得到改進,以更好地描述它正在做什麼,例如,你可能會困惑的線。

int i = zilly.length - 1;只是簡單地將語句正確地分隔出來使其更容易理解。

+0

感謝您的幫助! –

0

zilly.length -1定義了它自己。總陣列長度(大小)-1。

由於數組的第一個索引以0開頭,因此最後一項在位置n-1,其中n是數組的大小。

+0

感謝朋友XD –

0

在Java中,數組的索引從0開始。因此數組的最後一個元素由zilly[zilly.length - 1]訪問。如果您嘗試以這種方式訪問​​它:

zilly[zilly.length] 

您將得到一個越界異常。

代碼中的while循環從最後一個索引處開始,然後遍歷第一個元素。

+0

感謝我的朋友 –

0

zilly.length給出了數組的長度,即元素的數量。

zilly.length-1給出了數組的最後一個索引,因爲陣列的數量從0

開始所以基本上你是在一個遞減順序進行迭代,即從數組的最後一個元素的第一個元素陣列。

+0

謝謝兄弟! –

2

陣列的大小是這樣的陣列中的元件的數目,但是陣列的第一索引是0。例如:

int zilly[] = {1, 2, 3, 4} 

在這個例子中:

zilly.size返回:4

zilly[4]不存在的,因爲第一個元素的索引是0

zilly.[zilly.size - 1]返回最後eleme nt(4)。

希望它有幫助。

+0

除了OP詢問數組的事實,並且您談論ArrayLists,就好像它們是相同的。提示:他們不是。列表沒有** length **字段。 – GhostCat

+0

@GhostCat不錯的話,我沒有看到 –

+0

隨時更新你的答案,並再請給我留言。 – GhostCat

1

nameOfTable.lenght返回元件 Arrays開始的0 ==>(1st - 1 = 0)第一索引的數量,所以 最後一個索引是n - 1