2011-11-05 84 views
0

我想問你們一個問題。你看,我知道一個for循環是什麼,但有人可以也許解釋瞭如何一個作品,只是爲了幫我拿我的頭周圍,一個例子是:爲了什麼?

for(int i = 0; i < 10; i++) { 
    System.out.println("hello"); 
} 

現在很明顯,這將只是打印你好10次​​進入控制檯,但除此之外,我想知道for循環是如何工作的。

很抱歉,如果我搞糊塗的人問這個 - 肖恩

+2

#1資源:http://download.oracle.com/javase/tutorial/java/nutsandbolts/for.html – BalusC

+0

我不確定你在問什麼。迭代是計算機編程的核心概念。例如,如何檢查一千萬件物品的清單? –

+0

@JustinSatyr:看看Ted Hopp的答案,下面。 –

回答

3

The for Statement

for語句提供了一個緊湊的方式來遍歷值的範圍。程序員經常將其稱爲「for循環」,因爲它的重複循環方式直到滿足特定的條件。 for語句的一般形式可表示如下:

for (initialization; termination; increment) { 
    statement(s) 
} 

當使用這個版本的for語句,請記住:

  • 初始化表達式初始化循環;它會在循環開始時執行一次。
  • 當終止表達式計算結果爲false時,循環終止。
  • 遞增表達式在循環的每次迭代之後被調用;這個表達式增加或減少一個值是完全可以接受的。
+0

非常感謝很多人,我很喜歡簡單的java,當你知道它時哈哈:D – Shaun

10

for循環在你的例子是本或多或少當量:

int i = 0; 
while (i < 10) { 
    System.out.println("hello"); 
    i++; 
} 

唯一的區別是與你的for循環,可變i只存在於循環的範圍內。

使用相同的模式,每個for循環都可以轉換爲while循環。

for (init; test; continuation) { 
    // loop body 
} 

變爲:

init; 
while (test) { 
    // loop body 
    continuation; 
} 

再次,唯一的區別是,在init聲明的任何變量的作用域。

+0

美麗的答案謝謝 – Shaun

+0

這不是隻有***的區別。如果在for循環中使用'continue;',我會增加,而在「等效」時它不會。 –

+0

@ArmenTsirunyan - 感謝您指出這一點。 「繼續」聲明違反了[結構化編程]的規則(http://en.wikipedia.org/wiki/Structured_programming)。 (所以'return','throws'和'break')。很難用'while'循環來建模。當我使用「唯一」的時候,我想到了OP的具體例子;我的選擇應該更加謹慎。 –

0

好了,這是它是如何設置:

for (a; b; c)

「A」的東西是在循環的開始時進行。它實際上可以被排除在外,如果有必要,就像這樣:

for (; b; c)

「B」必須是真實或虛假陳述(像我< 10,它要麼是或者不是)。一旦「b」不再成立,循環就會停止。

「C」是在循環結束時完成的。

+0

實際上,'a','b'和'c'中的任何一個或全部都可以不在'for'循環中。 –

+0

我想你是對的,但不會遺漏'b'使它無限? – Cg2916

+0

如果你拋棄'b',那麼它確實是一個無限循環。唯一的出路是'break','return'或拋出異常。 –