1.比較循環:for
vswhile
循環while
可以用在任何一個語句或一組語句需要執行多次的地方。但在所有可能的情況中,有一個值得強調。
我們談論的是程序員(程序的創建者)事先知道循環應該執行多少次的情況。這通常通過聲明一個特殊的計數器變量,然後在1
循環的每次迭代中增加(或減少)該變量來處理。
一切似乎都按預期工作,但不是很方便。在循環之前,我們設置計數器變量的初始值。然後在條件中我們檢查它是否已經達到最終值。但是我們通常在循環體的最後更改值。
如果循環體很大怎麼辦?或者如果我們有幾個嵌套循環?通常,在這些情況下,希望將所有這些關於計數器變量的信息收集在一個地方。這就是我們for
在 Java 中使用循環的原因。它看起來也不是很複雜:
for (statement 1; condition; statement 2)
{
block of statements
}
一個while
循環只有括號中的一個條件,但是一個for
循環添加了兩個用分號分隔的語句。
實際情況比聽起來簡單:編譯器將for
循環轉換為普通while
循環,如下所示:
statement 1;
while (condition)
{
block of statements
statement 2;
}
或者更好的是,讓我們用一個例子來證明這一點。下面的兩個代碼片段是相同的。
選項1 | 選項 2 |
---|---|
|
|
我們只是將與計數器變量相關的所有代碼聚集到一個地方i
。
在for
循環中,語句 1在循環本身開始之前只執行一次。這可以在第二個代碼片段中清楚地看到
語句 2的執行次數與循環體相同,每次都在整個循環體執行完後執行
2.for
循環使用的地方
循環for
可能是 Java 中使用最多的循環類型。它無處不在,對於程序員來說,它只是比while
循環更清晰、更方便。實際上任何while
循環都可以轉換為for
循環。
例子:
while循環 | for循環 |
---|---|
|
|
|
|
|
|
|
|
|
|
注意最後一個例子。缺少使用循環計數器的語句。沒有櫃檯,也沒有聲明。
在for
循環中,Java 允許您省略“初始化計數器的語句”和“更新計數器的語句”。甚至可以省略定義循環條件的表達式。
3. 使用for
循環的細微差別
for
關於使用循環和break
語句continue
的重要一點。
break
循環中的語句與循環for
中的語句相同while
——它會立即終止循環。語句continue
會跳過循環體,但不會statement 2
(這會更改循環計數器)。
讓我們再看看for
和while
循環是如何相關的。
for (statement 1; condition; statement 2)
{
block of statements
}
statement 1;
while (condition)
{
block of statements
statement 2;
}
如果語句在continue
for
循環中執行,則跳過語句塊的其餘部分,但語句 2 (與循環的計數器變量一起使用的語句for
)仍會執行。
讓我們回到我們的示例,跳過可被 7 整除的數字。
此代碼將永遠循環 | 這段代碼可以正常工作 |
---|---|
|
|
使用循環的代碼while
將無法運行 — i 永遠不會大於 7。但是使用for
循環的代碼可以正常運行。
4. 比較 for 循環:Java 與 Pascal
順便說一下,Pascal 也有一個For
循環。通常,基本上每種編程語言都有一個。但是在 Pascal 中是非常清楚的。例子:
帕斯卡 | 爪哇 |
---|---|
|
|
|
|
|
|
GO TO FULL VERSION