幾種循環語句
1.循環語句while
while循環語句和選擇結構if語句有些相似,都是根據條件判斷來決定是否執行大括號內的執行語句。區別在於,while語句會反復地進行條件判斷,只要條件成立,{}內的執行語句就會執行,直到條件不成立,while循環結束。while循環語句的語法結構如下:
while(循環條件){
執行語句
………
}
在上面的語法結構中,{}中的執行語句被稱作循環體,循環體是否執行取決於循環條件。當循環條件為true時,循環體就會執行。循環體執行完畢時會繼續判斷循環條件,如條件仍為true則會繼續執行,直到循環條件為false時,整個循環過程才會結束。
while循環的執行流程如下圖所示
接下來通過一段代碼,來實現打印1~4之間的自然數,WhileDemo.java
public class WhileDemo {
public static void main(String[] args) {
int x = 1; // 定義變量x,初始值為1
while (x <= 4) { // 循環條件
System.out.println("x = " + x); // 條件成立,打印x的值
x++; // x進行自增
}
}
}
運行結果如下圖所示。
在上述代碼中,x初始值為1,在滿足循環條件x <= 4的情況下,循環體會重復執行,打印x的值並讓x進行自增。因此打印結果中x的值分別為1、2、3、4。
大家要註意的是,代碼x++用於在每次循環時改變變量x的值,從而達到最終改變循環條件的目的。如果沒有這行代碼,整個循環會進入無限循環的狀態,永遠不會結束。
2.循環語句for
for循環語句是最常用的循環語句,一般用在循環次數已知的情況下。for循環語句的語法格式如下:
for(初始化表達式; 循環條件; 操作表達式){
執行語句
………
}
在上面的語法結構中,for關鍵字後面()中包括了三部分內容:初始化表達式、循環條件和操作表達式,它們之間用“;”分隔,{}中的執行語句為循環體。
接下來分別用①表示初始化表達式、②表示循環條件、③表示操作表達式、④表示循環體,通過序號來具體分析for循環的執行流程。具體如下:
for(① ; ② ; ③){
④
}
第一步,執行①
第二步,執行②,如果判斷結果為true,執行第三步,如果判斷結果為false,執行第五步
第三步,執行④
第四步,執行③,然後重復執行第二步
第五步,退出循環
接下來通過一個案例對自然數1~4進行求和,如下所示。ForDemo01.java
public class ForDemo01 {
public static void main(String[] args) {
int sum = 0; // 定義變量sum,用於記住累加的和
for (int i = 1; i <= 4; i++) { // i的值會在1~4之間變化
sum += i; // 實現sum與i的累加
}
System.out.println("sum = " + sum); // 打印累加的和
}
}
運行結果如下圖所示。
上述代碼中,變量i的初始值為1,在判斷條件i<=4為true的情況下,會執行循環體sum+=i,執行完畢後,會執行操作表達式i++,i的值變為2,然後繼續進行條件判斷,開始下一次循環,直到i=5時,條件i<=4為false,結束循環,執行for循環後面的代碼,打印“sum=10”。
為了讓初學者能熟悉整個for循環的執行過程,現將上述代碼運行期間每次循環中變量sum和i的值通過表2-11羅列出來。
表2-1 sum和i循環中的值
循環次數 |
sum |
i |
第一次 |
1 |
1 |
第二次 |
3 |
2 |
第三次 |
6 |
3 |
第四次 |
10 |
4 |
3.循環語句do…while
do…while循環語句和while循環語句功能類似,其語法結構如下:
do {
執行語句
………
} while(循環條件);
在上面的語法結構中,關鍵字do後面{}中的執行語句是循環體。do…while循環語句將循環條件放在了循環體的後面。這也就意味著,循環體會無條件執行一次,然後再根據循環條件來決定是否繼續執行。
do…while循環的執行流程如下圖所示。
接下來使用do…while循環語句來實現打印1~4之間的自然數DoWhileDemo.java。
public class DoWhileDemo {
public static void main(String[] args) {
int x = 1; // 定義變量x,初始值為1
do {
System.out.println("x = " + x); // 打印x的值
x++; // 將x的值自增
} while (x <= 4); // 循環條件
}
}
運行結果如下圖所示。
我們發現WhileDemo.java與DoWhileDemo.java運行的結果一致,這說明什麽呢?這說明do …while循環和while循環能實現同樣的功能。然而在程序運行過程中,這兩種語句還是有差別的。如果循環條件在循環語句開始時就不成立,那麽while循環的循環體一次都不會執行,而do…while循環的循環體還是會執行一次。若將DoWhileDemo.java中的循環條件x<=4改為x < 1,DoWhileDemo.java運行結果會打印x=1,而WhileDemo.java運行結果什麽也不會打印。
幾種循環語句