流程式控制制語句結構

来源:https://www.cnblogs.com/tubby233/p/18329916
-Advertisement-
Play Games

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


流程式控制制語句結構

目錄

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等)。這些工具提供了豐富的符號庫和繪圖工具,可以方便地繪製複雜的流程圖。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • PART1: Java基礎知識概述與Java的下載安裝 1)Java語言概述: ① Java的發展史: 詹姆斯·高斯林(James Gosling) 1977年獲得了加拿大卡爾加里大學電腦科學學士學位,1983年獲得了美國卡內基梅隆大學電腦科學博士學位,畢業後到IBM工作,設計IBM第一代工作站 ...
  • 1、簡述C++中命名空間的作用。 答:避免重覆定義全局變數的問題。 2、定義兩個命名空間A 和 B 分別在A中和B中定義變數value。在main函數中將兩個空間的value列印出來。 #include "iostream" using namespace std; namespace A { in ...
  • 寫在前面 昨天說了一下Java中的數據類型、運算符、選擇語句、迴圈語句部分的基礎知識,今天寫的編程題就是來檢驗這部分的成果,來看看你能寫出來幾題。答案也是僅供參考,如果有更好的解法歡迎在下麵留言! 題目展示 1.輸入自己的名字,年齡和性別,分別用不同的變數接收,並將輸入的信息做輸出。 代碼: pub ...
  • 在氣象學和環境科學的研究中,理解和預測氣象數據的周期性變化至關重要。小波分析作為一種高效的數學工具,近年來在氣象數據的周期性分析中得到了廣泛應用。本文將詳細介紹如何通過Python進行小波分析,以探究氣象數據中的周期性變化。 ...
  • 不管你是做數據分析,還是網路爬蟲,Web 開發、亦或是機器學習,你都離不開要和資料庫打交道,而 MySQL 又是最流行的一種資料庫,這篇文章介紹 Python 操作 MySQL 的5種方式,你可以在實際開發過程中根據實際情況合理選擇。 1、MySQLdb MySQLdb又叫MySQL-python ...
  • Java 的多線程是一種允許在一個程式中同時運行多個線程的技術。每個線程是獨立的執行路徑,可以併發執行,從而提高程式的效率和響應能力。 1. 線程基礎 Java 中的線程可以通過繼承 Thread 類或實現 Runnable 介面來創建和管理。 1.1 繼承 Thread 類 class MyThr ...
  • 背景:之前的項目做讀寫分離的時候用的 MybatisPlus的動態數據做的,很多地方使用的@DS直接指定的讀庫或者寫庫實現的業務;隨著表數據量越來越大,現在打算把比較大的表進行水平拆分,準備使用 ShardingJDBC實現,但是發現兩者配合起來並不是那麼順利,網上大部分文章都是直接把整個Shard ...
  • 一, 創建工程,引入依賴 @目錄一, 創建工程,引入依賴創建工程工程間的關係的建立配置各個工程當中的 pow 配置信息,相關的依賴父工程(也就是總項目工程)的 pow 配置demo-module06-generate 模塊中pow 配置: Mybatis 逆向工程的 pow 配置demo-modul ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...