1. 概念
大家想一下,我們在400米的跑道上參加萬米長跑,正常情況下要跑25圈,這25圈每一圈的跑步過程其實都是一樣的,相當于是我們重復地轉了25圈。跑完第25圈時,我們就會結束長跑,當然你也可以提前結束長跑。但如果你是一個超人,跑完25圈之后還繼續跑下去,直到天荒地老,這就成了一個”死循環“了。
所以循環其實就是重復地完成某一件事情或者某一個操作,且該操作有開始和結束。我們在執行循環時,需要滿足一定的循環條,反復執行特定的代碼,當條件被打破時就要結束循環。這個循環操作不一定是完全一樣的操作,而是類似的操作,比如我們可以循環的播放音樂、循環計算1000個學生的成績等。
1. 實現方式
明確了循環的概念之后,我們還要知道有哪幾種具體的循環實現方式。在Java中,實現循環的方式有:
for循環;
while循環;
do-while循環;
foreach循環
1. for循環
首先我們來學習一下Java里的for循環,這也是我們開發時最常用的一種循環形式。
3.1 語法
for循環的基本語法如下:
for(①.聲明并初始化循環變量;②.判斷循環條件;④.改變循環變量值){
//③.循環體
}
語法說明:
1.for循環最先執行初始化步驟。在這里可以聲明一種類型,但可以初始化一個或多個循環控制變量,也可以是空語句;
2.判斷循環條件,檢測布爾表達式的值。如果為 true,循環體被執行。如果為false,循環終止,開始執行循環體后面的語句。且for循環的執行次數在執行前就已經是確定的。
3.執行一次循環后,就會更新一次循環控制變量的值;
4.再次檢測布爾表達式,循環執行上面的過程。
根據上面的步驟,壹哥把重點步驟給大家總結如下:
?、?->②-->③-->④-->②-->③-->④-->②-->③-->④-.....-②
如下圖所示:
3.2實現方式
Java 中的 for 循環是一種常見的控制流結構,可用于多次重復執行某段代碼。for 循環包括三個部分:初始化語句、循環條件和循環迭代器,如下所示:
for (初始化語句; 循環條件; 循環迭代器) {
// 循環體
}
在每次循環中,初始化語句只會在第一次執行,循環條件將會被檢查,如果為 true,則執行循環體,否則跳出循環,執行后面的代碼。循環迭代器則在每次循環結束后執行,以便更新循環變量的值。
以下是一個簡單的 Java 程序,使用 for 循環輸出數字 0 到 9:
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
在這個例子中,初始化語句是 int i = 0;,將變量 i 初始化為 0。循環條件是 i < 10,只要 i 小于 10,循環就會一直執行。循環迭代器是 i++,每次循環結束后,i 的值會增加 1。
當程序運行時,for 循環將會輸出數字 0 到 9:
0
1
2
3
4
5
6
7
8
9
這就是一個簡單的 for 循環的例子。在實際編程中,for 循環經常用于遍歷數組或集合等數據結構。
4. while循環
Java中的while循環是一種重復執行代碼塊的控制結構,只要指定的條件為真,就會一直執行循環中的代碼塊。while循環的語法如下:
while (condition) {
// 循環體
}
在上面的代碼中,condition 是一個布爾表達式,如果條件為true,則會一直執行循環體中的代碼。循環體可以包含任何Java代碼,包括變量聲明、控制流語句、函數調用等等。
需要注意的是,如果while循環中的條件始終為true,那么該循環將永遠不會結束,這種情況下可能會導致無限循環,程序會一直運行下去,直到內存或處理器資源耗盡或者程序強制停止。因此,在編寫while循環時,一定要確保循環體中的代碼最終能夠改變條件的值,使得循環最終能夠結束。
5.for循環和while循環的特點
5.1 for循環:
●for循環適用于已知循環次數的情況,可以根據給定的條件來自動控制循環次數。
●for循環可以遍歷一個序列,例如列表、元組、字符串等,對序列中的每個元素執行相同的操作。
●for循環可以使用range()函數生成一系列連續的整數作為循環變量,也可以使用enumerate()函數同時獲取序列中元素的索引和值。
●for循環語法簡潔,易于理解和維護。
5.2 while循環:
●while循環適用于未知循環次數的情況,可以根據條件判斷來控制循環次數。
●while循環適用于需要反復執行某個操作直到滿足條件的情況,例如輸入驗證、游戲循環等。
●while循環語句塊執行前需要先判斷條件是否成立,如果條件不成立,則不會進入循環。
●while循環可以用于實現多線程的同步等復雜操作。
總的來說,for循環適用于已知循環次數的情況,可以方便地遍歷序列;而while循環適用于未知循環次數的情況,可以在需要時反復執行操作直到滿足條件。在編程中,根據具體的需求選擇不同的循環結構可以提高代碼的效率和可讀性。
6.for循環和while循環的區別
6.1 for循環
for循環的語法如下:
for (初始化語句; 循環條件; 循環迭代器) {
// 循環體
}
其實:
●初始化語句:一般用于初始化循環變量。
●循環條件:如果滿足條件,就繼續執行循環體中的語句;否則,跳出循環。
●循環迭代器:更新循環變量的值,一般用于每次循環結束時更新循環變量的值。
例如,以下代碼使用for循環打印出從0到9的數字:
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
這個循環會從0開始,每次遞增1,直到循環變量i的值達到10為止。這個循環的輸出結果如下:
0
1
2
3
4
5
6
7
8
9
6.2 while循環
while循環的語法如下:
while (循環條件) {
// 循環體
}
其中:
循環條件:如果滿足條件,就繼續執行循環體中的語句;否則,跳出循環。
例如,以下代碼使用while循環打印出從0到9的數字:
//定義初始化遍歷
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
這個循環會從0開始,每次遞增1,直到循環變量i的值達到10為止。這個循環的輸出結果與上面的for循環相同:
0
1
2
3
4
5
6
7
8
9
6.3 for循環和while循環的比較
在使用上,for循環和while循環都可以完成相同的任務,但它們的使用場景略有不同:
●for循環適用于已知循環次數的情況,例如遍歷一個數組或集合。
●while循環適用于未知循環次數的情況,例如讀取文件直到文件結尾。
因此,當你需要重復執行一組語句時,應該根據具體的情況選擇for循環或while循環。
7.for循環和while循環的使用場景
7.1 for循環的使用場景
for循環通常用于迭代數組或集合中的元素。例如,以下示例計算一個數組中所有元素的和:
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println(sum);
上面的代碼中,for循環遍歷整個數組,將每個元素加入到sum變量中,最終輸出總和。這種情況下,我們已經知道了要循環的次數(數組的長度),所以使用for循環更加方便。
7.2 while循環的使用場景
while循環通常用于在不確定條件下重復執行代碼塊。例如,以下示例不斷生成隨機數,直到生成了一個大于90的數:
int num = 0;
while (num <= 90) {
num = (int) (Math.random() * 100);
}
System.out.println("The first number greater than 90 is: " + num);
上面的代碼中,while循環不斷生成隨機數,直到生成的數大于90為止。這種情況下,我們不知道要循環多少次,所以使用while循環更加方便。
需要注意的是,在某些情況下,for循環和while循環是可以互換的,例如上面的示例中,我們也可以使用for循環來生成隨機數,只不過要在循環體內判斷條件。但是在實際開發中,根據代碼邏輯和可讀性來選擇合適的循環語句是比較重要的。
8.總結
用 for 循環或 while 循環最終都是取決于任務的性質和所需的迭代方式。
●for 循環適用于已知要遍歷的元素數量的情況,例如在列表、元組或字符串等可迭代對象中遍歷元素。
●while 循環適用于需要在滿足某個條件時重復執行某個塊代碼的情況,例如在執行某些操作直到達到預期結果或用戶輸入正確值的情況。
●當需要遍歷固定數量的元素時, for 循環比 while 循環更方便。當需要在滿足條件時重復執行代碼時, while 循環比 for 循環更適合。
總的來說,對于大多數情況,選擇 for 循環是更好的選擇,因為它通常比 while 循環更簡單、更直觀。然而,在特定情況下,使用 while 循環可以更加靈活,特別是當需要在不確定條件下循環執行代碼時。