流程控制語句
内容
- for循環語句
- while循環語句
- do...while循環語句
- break
- continu
循環語句:for循環
循環語句可以在滿足循環條件的情況下,反複執行某一段代碼,這段被重複執行的代碼被稱為循環體語句,當反複執行這個循環體時,需要通過修改循環變量使得循環判斷條件為false,進而結束循環,否則循環将一直執行下去,形成死循環。
for循環語句格式:
for(初始化語句①; 循環條件語句②; 疊代語句④){
循環體語句③
}
for(;;){
循環體語句塊;//如果循環體中沒有跳出循環體的語句,那麼就是死循環
}
注意:
(1)for(;;)中的兩個;是不能多也不能少
(2)循環條件必須是boolean類型
(3)如果循環條件語句②省略的話,就預設為循環條件成立
執行流程:
- 第一步:執行初始化語句①,完成循環變量的初始化;
- 第二步:執行循環條件語句②,看循環條件語句的值是true,還是false;
- 如果是true,執行第三步;
- 如果是false,循環語句中止,循環不再執行。
- 第三步:執行循環體語句③
- 第四步:執行疊代語句④,針對循環變量重新指派
- 第五步:根據循環變量的新值,重新從第二步開始再執行一遍
文法示範案例:求出1-5之間資料之和
/*
* 練習:求出1-5之間資料之和
*
* 分析:
* 1.定義求和變量,初始化值是0
* 2.擷取1-5之間的資料,用for循環實作
* 3.把每一次擷取到的資料,累加起來就可以了
* 4.輸出求和變量即可
*/
public class ForTest02 {
public static void main(String[] args) {
//定義求和變量,初始化值是0
int sum = 0;
//擷取1-5之間的資料,用for循環實作
for(int x=1; x<=5; x++) {
//把每一次擷取到的資料,累加起來就可以了
//sum = sum + x;
/*
* 第一次:sum = 0 + 1 = 1
* 第二次:sum = 1 + 2 = 3
* 第三次:sum = 3 + 3 = 6
* 第四次:sum = 6 + 4 = 10
* 第五次:sum = 10 + 5 = 15
*/
sum += x;
}
//輸出求和結果
System.out.println("sum:" + sum);
}
}
循環結構:while循環
while循環語句标準格式:
while (循環條件語句①) {
循環體語句②;
}
while(true){
循環體語句;//如果此時循環體中沒有跳出循環的語句,也是死循環
}
注意:
white(循環條件)中循環條件必須是boolean類型
執行流程:
第一步:執行循環條件①,看循環條件語句的值是true,還是false;
如果是true,執行第二步。
如果是false,循環語句中止循環不再執行。
第二步:執行循環體語句②;
第三步:循環體語句執行完後,重新從第一步開始再執行一遍。
while循環語句擴充格式:
初始化語句①;
while (循環條件語句②) {
循環體語句③;
疊代語句④;
}
執行流程:
- 第一步:執行初始化語句①,完成循環變量的初始化;
- 第二步:執行循環條件語句②,看循環條件語句的值是true,還是false;
- 如果是true,執行第三步;
- 如果是false,循環語句中止,循環不再執行。
- 第三步:執行循環體語句③
- 第四步:執行疊代語句④,針對循環變量重新指派
- 第五步:根據循環變量的新值,重新從第二步開始再執行一遍
文法示範案例:周遊1-100之間的偶數
int num = 2;
while(num<=100){
System.out.println(num);
num+=2;
}
循環結構:do...while循環
do...while循環語句标準格式:
do {
循環體語句①;
} while (循環條件語句②);
注意:
(1)while(循環條件)中循環條件必須是boolean類型
(2)do{}while();最後有一個分号
(3)do...while結構的循環體語句是至少會執行一次,這個和for和while是不一樣的
執行流程:
- 第一步:執行循環體語句①;
- 第二步:執行循環條件語句②,看循環條件語句的值是true,還是false;
- 如果是true,執行第三步;
- 如果是false,循環語句終止,循環不再執行。
- 第三步:循環條件語句執行完後,重新從第一步開始再執行一遍
do...while循環語句擴充格式:
初始化語句①
do {
循環體語句②;
疊代語句③;
} while (循環條件語句④);
執行流程:
- 第一步:執行初始化語句①,完成循環變量的初始化;
- 第二步:執行循環體語句②;
- 第三步:執行疊代語句③,針對循環變量重新指派;
- 第四步:執行循環條件語句④,看循環條件語句的值是true,還是false;
- 如果是true,根據循環變量的新值,重新從第二步開始再執行一遍;
- 如果是false,循環語句中止,循環不再執行。
循環語句的差別
- 從循環次數角度分析
- do...while循環至少執行一次循環體語句
- for和while循環先循環條件語句是否成立,然後決定是否執行循環體,至少執行零次循環體語句
- 從循環變量的生命周期角度分析
- for循環的循環變量在for()中聲明的,在循環語句結束後,不可以被通路;
- while和do...while循環的循環變量因為在外面聲明的,是以while和do...while結束後可以被繼續使用的;
- 如何選擇
- 周遊有明顯的循環次數(範圍)的需求,選擇for循環
- 周遊沒有明顯的循環次數(範圍)的需求,循環while循環
- 如果循環體語句塊至少執行一次,可以考慮使用do...while循環
- 本質上:三種循環之間是可以互相轉換的,都能實作循環的功能
- 三種循環結構都具有四要素:
- (1)循環變量的初始化表達式
- (2)循環條件
- (3)循環變量的修改的疊代表達式
- (4)循環體語句塊
控制語句
break
- 使用場景:終止switch或者目前循環
- 在選擇結構switch語句中
- 在循環語句中
- 離開使用場景的存在是沒有意義的
continue
- 使用場景:結束本次循環,繼續下一次的循環
嵌套循環
- 所謂嵌套循環,是指一個循環的循環體是另一個循環。比如for循環裡面還有一個for循環,就是嵌套循環。總共的循環次數=外循環次數*内循環次數。當然可以是三種循環任意互相嵌套。
- 嵌套循環格式:
for(初始化語句①; 循環條件語句②; 疊代語句⑦) {
for(初始化語句③; 循環條件語句④; 疊代語句⑥) {
循環體語句⑤;
}
}
文法案例示範
public static void main(String[] args){
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}