流程控制語句結構

tubby233發表於2024-07-29

流程控制語句結構

目錄
  • 流程控制語句結構
    • 1.順序結構
      • 定義與特點
      • 示例
    • 2.分支結構
      • 2.1. if-else語句
      • 2.2. switch語句
    • 3.迴圈結構
      • 1. for迴圈
      • 2. while迴圈
      • 3. do-while迴圈
      • 使用場景和注意事項
    • 4.跳轉語句
    • 5.繪製程式流程圖
      • 基本步驟
      • 常用符號
      • 示例
      • 工具

1.順序結構

定義與特點

  • 定義:順序結構是指程式按照程式碼的書寫順序,從上到下依次執行的結構。
  • 特點:
    • 自上而下:程式從第一條語句開始,按照程式碼書寫順序逐條執行,直到最後一條語句。
    • 沒有分支:在順序結構中,程式的執行路徑單一,不會發生跳轉或者分支。
    • 簡單易懂:邏輯直接明瞭,便於理解和編寫。

示例

class test{
	public static mian(String[] argus){
        int a=5;
        int b=9;
        int c=a+b;
        System.out.println(c);
    }
}

2.分支結構

Java程式的分支結構是Java程式設計中用於實現條件判斷的重要結構,它允許程式根據不同的條件執行不同的程式碼塊。Java中的分支機構主要包括if-else語句和switch語句。

2.1. if-else語句

if-else語句是Java中最基本的條件判斷語句,它根據布林表示式的值來決定是否執行某個語句塊。

  • 基本語法

    if (條件表示式) {  
        // 條件為真時執行的程式碼  
    } else {  
        // 條件為假時執行的程式碼  
    }
    

    當條件表示式的結果為true時,執行if語句塊中的程式碼;如果為false,則執行else語句塊中的程式碼(如果存在的話)。

  • 特點

    • 支援巢狀使用,即在一個ifelse語句塊內部再巢狀另一個if-else語句。
    • 可以有多個else if分支,用於處理多個條件。
  • 示例

    int score = 85;  
    if (score > 90) {  
        System.out.println("優秀");  
    } else if (score > 80) {  
        System.out.println("良好");  
    } else if (score > 70) {  
        System.out.println("中等");  
    } else if (score > 60) {  
        System.out.println("及格");  
    } else {  
        System.out.println("不及格");  
    }
    

2.2. switch語句

switch語句是另一種條件判斷語句,它允許一個變數或表示式與多個case標籤進行比較,並執行與匹配case相關聯的語句塊。

  • 基本語法

    switch (表示式) {  
        case 值1:  
            // 與值1匹配時執行的程式碼  
            break;  
        case 值2:  
            // 與值2匹配時執行的程式碼  
            break;  
        // 可以有更多的case  
        default:  
            // 沒有任何case匹配時執行的程式碼  
    }
    

    注意,每個case塊的末尾通常會有一個break語句,用於跳出switch語句,防止程式碼繼續執行到下一個case塊。

  • 特點

    • switch語句中的表示式通常是整型(byteshortcharint)、列舉(enum)型別或字串(從Java 7開始支援)。
    • case標籤必須是常量表示式。
    • 如果沒有任何case匹配,並且存在default分支,則執行default分支中的程式碼。
  • 示例

    String day = "MONDAY";  
    switch (day) {  
        case "MONDAY":  
            System.out.println("今天是星期一");  
            break;  
        case "TUESDAY":  
            System.out.println("今天是星期二");  
            break;  
        // 可以有更多的case  
        default:  
            System.out.println("今天不是星期一也不是星期二");  
    }
    

3.迴圈結構

Java程式的迴圈結構主要用於重複執行一段程式碼,直到滿足某個條件為止。Java提供了三種主要的迴圈結構:for迴圈、while迴圈和do-while迴圈。每種迴圈結構都有其獨特的使用場景和優勢。

1. for迴圈

for迴圈通常用於已知迴圈次數的場景,其語法結構清晰,易於理解。

語法格式

for(初始化表示式; 迴圈條件表示式; 迭代表示式) {  
    // 迴圈體  
}

執行流程

  1. 執行初始化表示式。
  2. 評估迴圈條件表示式,如果為true,則執行迴圈體;如果為false,則退出迴圈。
  3. 執行迴圈體。
  4. 執行迭代表示式。
  5. 回到第2步,重複執行,直到迴圈條件表示式為false。

示例

for(int i = 0; i < 5; i++) {  
    System.out.println(i);  
}

該示例中,迴圈變數i從0開始,每次迴圈增加1,直到i的值小於5為止。迴圈體內列印出當前的i值。

2. while迴圈

while迴圈在迴圈開始前檢查條件,如果條件為真,則執行迴圈體。

語法格式

while(迴圈條件) {  
    // 迴圈體  
    // 更新迴圈條件的語句(通常放在迴圈體內部)  
}

執行流程

  1. 評估迴圈條件,如果為true,則執行迴圈體;如果為false,則退出迴圈。
  2. 執行迴圈體。
  3. 回到第1步,重複執行,直到迴圈條件為false。

示例

int i = 0;  
while(i < 5) {  
    System.out.println(i);  
    i++;  
}

該示例中,首先初始化變數i為0,然後在while迴圈中檢查i的值是否小於5。如果是,則執行迴圈體,列印出i的值,並將i增加1。

3. do-while迴圈

do-while迴圈與while迴圈類似,但至少會執行一次迴圈體,然後再檢查條件。

語法格式

do {  
    // 迴圈體  
    // 更新迴圈條件的語句(通常放在迴圈體內部)  
} while(迴圈條件);

執行流程

  1. 執行迴圈體。
  2. 評估迴圈條件,如果為true,則回到第1步繼續執行;如果為false,則退出迴圈。

示例

int i = 0;  
do {  
    System.out.println(i);  
    i++;  
} while(i < 5);

該示例中,do-while迴圈首先執行迴圈體,列印出i的值,並將i增加1。然後檢查i的值是否小於5,如果是,則繼續執行迴圈體;否則,退出迴圈。

使用場景和注意事項

  • 當迴圈次數已知時,通常使用for迴圈。
  • 當迴圈次數未知,但需要在迴圈開始前檢查條件時,使用while迴圈。
  • 當需要至少執行一次迴圈體時,使用do-while迴圈。

在使用迴圈結構時,應注意以下幾點:

  • 確保迴圈條件能夠最終變為假,否則會導致無限迴圈。
  • 在迴圈體內更新迴圈條件,以確保迴圈能夠正常終止。
  • 避免在迴圈體內修改迴圈變數,除非這是預期的行為。
  • 注意迴圈巢狀可能導致程式碼可讀性變差,儘量保持程式碼簡潔和易於理解。

透過不斷實踐和練習,你將能夠熟練掌握Java中的迴圈結構,並編寫出高效、穩定的程式碼。

4.跳轉語句

Java中的跳轉語句允許程式在執行過程中改變其正常的順序流程。這些語句主要用於條件判斷、迴圈控制以及從多層巢狀結構中快速退出。Java中的跳轉語句主要包括以下幾種:

  1. break語句

    • break語句用於完全終止其所在的迴圈或switch語句。當遇到break時,程式會立即退出該迴圈或switch語句,繼續執行其後的程式碼(如果有的話)。

    • 示例

      for (int i = 0; i < 10; i++) {  
          if (i == 5) {  
              break; // 當i等於5時,終止迴圈  
          }  
          System.out.println(i);  
      }
      
  2. continue語句

    • continue語句用於跳過當前迴圈的剩餘部分,並開始下一次迴圈的迭代。它不會終止迴圈,只是跳過當前迭代的剩餘部分。

    • 示例

      for (int i = 0; i < 10; i++) {  
          if (i % 2 == 0) {  
              continue; // 跳過偶數,不列印  
          }  
          System.out.println(i);  
      }
      
  3. return語句

    • 雖然return語句通常與方法的返回值相關聯,但它也可以被視為一種形式的跳轉語句,因為它會立即退出當前方法,並將控制權返回給方法的呼叫者。在void型別的方法中,return語句不返回任何值,但同樣會退出方法。

    • 示例

      public int findMax(int[] numbers) {  
          int max = numbers[0];  
          for (int num : numbers) {  
              if (num > max) {  
                  max = num;  
              }  
              if (num < 0) {  
                  return -1; // 如果找到負數,立即返回-1  
              }  
          }  
          return max;  
      }
      
  4. 標籤(Label)語句(不常用)

    • Java還支援標籤(Label),它允許你使用breakcontinue語句來跳出多層巢狀迴圈或switch語句。不過,由於這種用法可能會導致程式碼難以理解和維護,因此並不推薦頻繁使用。

    • 示例

      outerLoop:  
      for (int i = 0; i < 10; i++) {  
          for (int j = 0; j < 10; j++) {  
              if (i * j > 10) {  
                  break outerLoop; // 跳出外層迴圈  
              }  
          }  
      }
      

使用這些跳轉語句時,應謹慎考慮它們對程式可讀性和維護性的影響。過度使用跳轉語句可能會使程式碼邏輯變得複雜且難以跟蹤。

5.繪製程式流程圖

繪製程式流程圖是軟體工程中的一個重要步驟,它幫助開發者理解和設計程式的邏輯結構。流程圖透過圖形化的方式展示了一系列步驟和決策,這些步驟和決策描述了程式如何執行。以下是繪製程式流程圖的基本步驟和常用符號:

基本步驟

  1. 理解程式邏輯:首先,你需要徹底理解程式的邏輯,包括輸入、處理過程和輸出。
  2. 確定關鍵步驟和決策點:識別出程式中所有重要的操作、計算、資料處理步驟以及決策點(如條件判斷)。
  3. 選擇符號:根據流程圖的標準符號庫(如ISO 5807標準),選擇合適的符號來表示不同的程式元素。
  4. 繪製流程圖
    • 使用矩形表示處理步驟(如計算、賦值等)。
    • 使用菱形表示決策點(條件判斷)。
    • 使用平行四邊形表示輸入/輸出操作。
    • 使用箭頭連線各個符號,表示流程的方向。
    • 可以使用圓形表示開始和結束。
  5. 稽核和修改:繪製完成後,仔細檢查流程圖,確保它準確地反映了程式的邏輯。根據需要進行修改。

常用符號

  • 矩形:表示處理步驟或計算。
  • 菱形:表示決策點或條件判斷。
  • 平行四邊形:表示輸入/輸出操作(儘管有些情況下輸入輸出操作也會用矩形表示,並標註“輸入”或“輸出”)。
  • 箭頭:表示流程的方向。
  • 圓形:開始(實心圓)和結束(空心圓)。
  • 流線:連線流程圖中各元素的線條,表示程式執行的順序。
  • 註釋框(可選):用於新增說明性文字,幫助理解流程圖。

示例

假設你有一個簡單的程式,該程式要求使用者輸入兩個數字,然後判斷這兩個數字是否相等,如果相等則輸出“相等”,否則輸出“不相等”。

流程圖示例

  1. 開始(實心圓)

  2. 輸入第一個數字(平行四邊形)

  3. 輸入第二個數字(平行四邊形)

  4. 判斷

    兩個數字是否相等(菱形)

    • 如果

      ,則

      • 輸出“相等”(平行四邊形)
      • 結束(空心圓)
    • 如果

      ,則

      • 輸出“不相等”(平行四邊形)
      • 結束(空心圓)

工具

繪製流程圖可以使用多種工具,包括紙筆、白板和專用的軟體工具(如Visio、Lucidchart、Draw.io等)。這些工具提供了豐富的符號庫和繪圖工具,可以方便地繪製複雜的流程圖。

相關文章