2013-11-27 207 views
0

目前我正在學習Java,我被困在一些循環中,我不知道它們是如何工作的。需要幫助瞭解循環

的代碼看起來是這樣的:

int sum = 0, maximum = number[0], minimum = number[0]; 
for (int i = 0; i < number.length; i++) { 
    sum += number[i]; 
    if (maximum < number[i]) { 
     maximum = number[i]; 
    } 
    if (minimum > number[i]) { 
     minimum = number[i]; 
    } 
} 

所以我的問題是:

  1. 是什麼 int sum = 0, maximum = number[0], minimum = number[0]嗎?它是否使循環從0開始 ?

  2. 在for循環中,number.length是什麼;做?

  3. sum + = number [i]做了什麼,爲什麼需要[i]?

  4. 同樣的,如果它檢查最大/最小值循環,爲什麼會出現[I]之後的數字?

+8

有沒有這樣的事情作爲「如果循環」。 –

+1

http://www.learnjavaonline.org/將是一個很好的開始 – reto

+2

你應該通過一個基本的教程。 – Maroun

回答

0

1。 int sum = 0,maximum = number [0],minimum = number [0]是做什麼的?它是否使循環從0開始?

(請注意,此行對未來自帶的for循環沒有任何影響。)

此行分別初始化summaximumminimum0number[0]number[0]
注意,這條線是一個簡寫:

int sum = 0; 
int maximum = number[0]; 
int minimum = number[0]; 

2。在for循環中,number.length是什麼?做?

number.length是陣列number的長度,它是說存儲在數組中numberint值的數量。

3。 sum + = number [i]是做什麼的,爲什麼需要[i]?

它增加sumnumber[i]
number[i]是存儲在int數組number中的第i個int值。這裏,i被稱爲索引

4。在檢查最大值/最小值的if ...方面相同,爲什麼後面的數字是[i]?

此處還有,i是一個索引,表示您想要數組中的第i個值number

(順便說一下,也可以考慮

maximum = Math.max(maximum, number[i]); 
minimum = Math.min(minimum, number[i]); 

,而不是兩個if條件。)

+0

謝謝你的解釋,是的,我的意思是for循環。發佈時感到困惑。 – user3042022

2

這行:

int sum = 0, maximum = number[0], minimum = number[0]; 

聲明int類型的三個變量(summaximumminimum),並與一些值(0number[0]number[0]分別初始化它們

number似乎是一個數組(可能是一個int[]),這意味着它擁有多個值。

number.length只是返回number中的元素數。

number[i]返回數組中位置i的元素(就像number[0]返回位置0處的元素a.k.a第一個元素一樣)。

因此,大部分的困惑似乎是由於缺乏對數組的知識所致。

查看this tutorial的首發。

+3

可能有趣的是,不建議在一行中聲明多個變量,請參閱[Java代碼約定](http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141270。 html#2992) – sp00m

1

int sum = 0,maximum = number [0],minimum = number [0]做什麼? 它是否使循環從0開始?

它聲明3個INT變量(總和,最大值和最小值)+它們初始化

在for循環

有哪些呢number.length;做?

它變得不爲什麼是需要什麼樣的總和+ =數[I]不和[i]的數量的陣列

的長度是多少?sum = sum + number[i] +=被稱爲前增量:作爲

sum += number[i]也可以寫。在需要[i],因爲它是指一種特定索引的數量陣列中

同樣在如果其查詢的最大值/最小值環路,爲什麼是 有[I]之後的數字?

因爲您正在獲取numbers數組中索引i的編號。

0

該循環是一個for循環。如果是條件聲明。

int sum = 0, maximum = number[0], minimum = number[0]; 

這會創建並初始化3個int變量:sum,maximum和minimum。

number.length是此循環的結束條件的一部分。只要我< number.length是真實的,這德路將被執行

數[]是一個數組

sum+=number[i] 

這增加了數的值[I]總結 [i]是數組的細胞 - 我得到一個新的數的每一個循環:

int i = 0; i < number.length; i++ 

所以它以0開始,以1遞增,並且這樣做時,只要i大於number.length低。

所以number[i]number[0]在循環的第一次迭代,那麼數[1],然後數[2]等

0

我猜你的意思是 「for循環」。讓我們從for循環的語法開始。

for (int i = 0; i < number.length; i++) { 
    your code here.... 
} 

的「int i=0」部分聲明瞭一個「幻影」整型變量,這意味着它只能在,如果循環是否存在;當循環結束時,編譯器「拋棄」該變量。 i的初始值爲0.

然後,您有部分;i < number.length;。這部分表示「運行循環,直到我達到陣列號的長度。」

最後,「i++」定義了步長;每次運行後我將會有多大(或更小)。 。

因此,在總結。您的循環開始用計數器的初始化,然後決定你想要一個計數器有多大運行的迭代,最後你會多少增加此計數器。

我要請注意,這些是基本的東西之一,一本書或一本指南對你來說很好,否則你將不得不如