天天看點

JAVA基礎系列 - 第4篇: 流程控制(下)

上篇回顧

上篇的内容不知道小夥伴們學習的怎樣,我這裡出幾個問題幫助下大家鞏固一下,大家看看能不能直接回答出來。

  1. 分支結構有哪兩種?
  2. switch結構的表達式支援哪些類型?switch中break的作用?

學習目标

  1. for循環
  2. while循環
  3. do-while循環
  4. 三種循環的差別
  5. 跳轉控制語句

内容

在上一篇中我們了解了分支結構,還剩下一個循環結構還沒有講。那麼這一篇我們就來學習一下這個循環結構,看看它到底是怎麼樣的。

在循環結構中,循環語句可以在滿足循環條件的情況下,反複執行某一行代碼,這段被重複執行的代碼被稱為循環體語句。當反複執行這個循環體時,需要在合适的時候結束循環,否則循環将一直執行下去,形成死循環。

1. for循環

1.1. 文法格式

for(初始化語句; 條件判斷語句; 條件控制語句) {
    循環體語句;
}
           

1.2. 執行流程

  • 執行初始化語句:int i = 0; (隻執行一次)。
  • 執行條件判斷語句 i < 5; 如果為 true,執行循環體語句,如果為 false,則結束循環。
  • 執行循環體語句:System.out.println("Hello World");
  • 執行條件控制語句:++i
  • 回到第 2 步重複執行。
JAVA基礎系列 - 第4篇: 流程控制(下)

1.3. 案例

// 在控制台列印 5行Hello World
for(int i = 0; i < 5; ++i) {
    System.out.println("Hello World");
}
           

2. while循環

2.1. 文法格式

while(條件判斷語句){
    循環體語句;
    條件控制語句;
}
           

2.2. 執行流程

JAVA基礎系列 - 第4篇: 流程控制(下)

2.3. 案例

// 在控制台列印 5行Hello World
int i = 0;
while(i < 5){
    System.out.println("Hello World");
    i++;
}
           

3. do-while循環

3.1. 文法格式

初始化語句;
do {
    循環體語句;
    條件控制語句;
} while(條件判斷語句);
           

3.2. 執行流程

  • 執行初始化語句(隻執行一次)。
  • 執行循環體語句。
  • 執行條件控制語句。
  • 執行條件判斷語句,如果為 false 則結束循環,如果為 true 則回到第2步繼續執行。
JAVA基礎系列 - 第4篇: 流程控制(下)

3.3. 案例

// 使用do-while循環在控制台列印5次HelloWorld
int i = 0;
do{
    System.out.println("HelloWorld");
    i++;
}while(i < 5);
           

4. 三種循環的差別

  • 特點
    • for:先判斷,再執行
    • while:先判斷,再執行
    • do-while:先執行,再判斷
  • 初始化變量
    • for:for循環外無法使用初始化定義的變量
    • while:循環結束後,初始化變量還能繼續使用
    • do-while:循環結束後,初始化變量還能繼續使用
  • 适用場景
    • for:循環次數确定的情況
    • while:循環次數不确定的情況
    • do-while:循環至少需要執行一次的情況

5. 跳轉控制語句

介紹了三種循環結構,大家有沒有疑惑說如果我在循環體中想要跳過或者退出應該怎麼做呢?這裡我們在學習多兩個關鍵字的用法 

break

 和

continue

5.1. break

使用場景:

  • 在switch中,用于結束switch結構。
  • 在循環中,用于結束break所在循環。
  • 多層循環時,可以為循環加上标簽,讓break結束指定循環。
注意:break語句後面不能直接跟其他語句,否則會編譯報錯。

案例:

int i = 1;
while(true){
    System.out.println(i++);
    if(i > 50){
        break;
        // System.out.println(i); 此處代碼無法執行,會引發編譯錯誤
    }
}
           

5.2. continue

使用場景:

  • continue隻能在循環中使用,用于跳過一次循環,開始下一次循環。
  • continue後面不能直接跟其他語句,否則會編譯報錯。
  • 當有循環嵌套時,continue也可配合标簽使用,跳到指定循環繼續執行。
int i = 1;
while(true){    
    if(i % 2 == 1){
        continue;
        // System.out.println(i); 此處代碼無法執行,會引發編譯錯誤
    }
    System.out.println(i++);    // 這裡隻會列印偶數
}
           

總結