掌握Java控制流:編程決策的藝術

控制流語句是用來 控制程序執行順序 的關鍵工具,它們允許你根據不同的條件執行不同的代碼塊,或者重復執行某段代碼。這使得程序能夠根據輸入和情況做出智能的決策,而不僅僅是線性的執行。

1. 條件語句 (Conditional Statements)

條件語句允許你根據 布爾表達式(true 或 false) 的結果來決定執行哪部分代碼。

1.1 if 語句

最基本的條件語句,用于在條件為真時執行一段代碼。

語法:

if (condition) {// 當 condition 為 true 時執行的代碼塊
}

示例:

int score = 85;
if (score >= 60) {System.out.println("恭喜,你及格了!");
}

1.2 if-else 語句

if 的條件為假時,你可以提供一個 else 塊來執行另一段代碼。

語法:

if (condition) {// 當 condition 為 true 時執行的代碼塊
} else {// 當 condition 為 false 時執行的代碼塊
}

示例:

int temperature = 25;
if (temperature > 30) {System.out.println("天氣很熱,注意防暑!");
} else {System.out.println("天氣舒適。");
}

1.3 if-else if-else 語句

用于處理多個條件判斷,按順序檢查條件,一旦某個條件為真,就執行對應的代碼塊,然后跳出整個 if-else if-else 結構。

語法:

if (condition1) {// 當 condition1 為 true 時執行
} else if (condition2) {// 當 condition1 為 false,且 condition2 為 true 時執行
} else if (condition3) {// 當 condition1, condition2 都為 false,且 condition3 為 true 時執行
} else {// 當以上所有條件都為 false 時執行
}

示例:

int mark = 75;
if (mark >= 90) {System.out.println("優秀");
} else if (mark >= 80) {System.out.println("良好");
} else if (mark >= 60) {System.out.println("及格");
} else {System.out.println("不及格");
}

1.4 switch 語句

switch 語句提供了一種更簡潔的方式來根據一個 變量(通常是整型、字符型或枚舉類型) 的值執行不同的代碼塊。

語法:

switch (expression) {case value1:// 當 expression 等于 value1 時執行的代碼break; // 退出 switch 語句case value2:// 當 expression 等于 value2 時執行的代碼break;// ... 更多 casedefault: // 可選// 當 expression 不匹配任何 case 時執行的代碼
}

重要說明:

  • break 語句非常重要!它用于 終止 switch 語句的執行。如果沒有 break,程序會 “穿透” (fall-through) 到下一個 case 繼續執行,這通常不是我們想要的。

  • default 塊是可選的,用于處理所有 case 都不匹配的情況。

示例:

char grade = 'B';
switch (grade) {case 'A':System.out.println("優秀!");break;case 'B':System.out.println("良好!");break;case 'C':System.out.println("及格!");break;default:System.out.println("需要努力!");
}

2. 循環語句 (Looping Statements)

循環語句允許你 重復執行一段代碼,直到滿足某個條件為止。

2.1 for 循環

for 循環通常用于 已知循環次數 的情況。它包含三個部分:初始化、條件和迭代。

語法:

for (initialization; condition; iteration) {// 循環體:當 condition 為 true 時重復執行的代碼
}

示例:

// 打印 1 到 5
for (int i = 1; i <= 5; i++) {System.out.println("當前數字: " + i);
}

增強 for 循環 (For-Each Loop): 用于遍歷數組或集合中的元素,更加簡潔。

語法:

for (dataType element : arrayOrCollection) {// 對 element 進行操作
}

示例:

int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {System.out.println(num);
}

2.2 while 循環

while 循環在 循環條件為真時 不斷地重復執行代碼塊。它只包含一個條件。

語法:

while (condition) {// 當 condition 為 true 時重復執行的代碼塊// 必須有邏輯來最終使 condition 變為 false,否則會造成死循環
}

示例:

int count = 0;
while (count < 3) {System.out.println("循環次數: " + count);count++; // 必須有這行,否則是死循環
}

2.3 do-while 循環

do-while 循環與 while 循環類似,但 至少會執行一次循環體,然后再根據條件判斷是否繼續循環。

語法:

do {// 循環體:至少執行一次// 必須有邏輯來最終使 condition 變為 false
} while (condition); // 注意這里的分號

示例:

int num = 5;
do {System.out.println("執行 do-while 循環,num = " + num);num--;
} while (num > 0);

3. 跳轉語句 (Jump Statements)

跳轉語句用于 改變程序的正常執行流程

3.1 break 語句

  • 循環語句 中:用于 立即終止整個循環,程序將跳到循環體外的下一條語句。

  • switch 語句 中:用于 立即終止 switch 語句

示例(在循環中):

for (int i = 0; i < 10; i++) {if (i == 5) {break; // 當 i 等于 5 時,跳出 for 循環}System.out.println(i);
}
// 輸出: 0, 1, 2, 3, 4

3.2 continue 語句

continue 語句用于 跳過當前迭代的剩余部分,直接進入下一次迭代(執行循環的更新部分,并重新檢查條件)。

示例:

for (int i = 0; i < 10; i++) {if (i % 2 == 0) { // 如果 i 是偶數continue; // 跳過這次循環的剩余部分,直接進行下一次迭代}System.out.println(i); // 只會打印奇數
}
// 輸出: 1, 3, 5, 7, 9

3.3 return 語句

return 語句用于 退出當前的方法,并將一個值(如果方法有返回值)返回給調用者。我們后面學習方法時會詳細講。

4. 總結:控制流語句

你已經成功掌握了 Java 中的控制流語句,這為編寫更復雜、更智能的程序奠定了堅實的基礎。簡單來說,控制流語句就像是程序的“大腦”,它們決定了代碼執行的順序、是否重復執行以及在何種條件下執行。

我們回顧一下今天學習的關鍵內容:

1. 條件語句 (Conditional Statements):

  • if: 在條件為真時執行代碼塊。

  • if-else: 根據條件真假選擇執行不同的代碼塊。

  • if-else if-else: 處理多個互斥的條件判斷。

  • switch: 根據一個變量的值,簡潔地選擇執行多個代碼塊之一。

2. 循環語句 (Looping Statements):

  • for: 適用于已知循環次數的場景,包含初始化、條件和迭代。

  • 增強 for (For-Each Loop): 簡化了遍歷數組或集合的操作。

  • while: 在條件為真時持續循環。

  • do-while: 至少執行一次循環體,然后根據條件判斷是否繼續。

3. 跳轉語句 (Jump Statements):

  • break: 立即終止循環或 switch 語句。

  • continue: 跳過當前循環迭代的剩余部分,進入下一次迭代。

  • return: 退出當前方法(我們將在后續學習方法時深入探討)。

掌握了這些控制流語句,你就能讓你的 Java 程序具備“思考”和“決策”的能力,能夠根據不同的情況做出不同的反應,編寫出更具動態性和靈活性的代碼。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96543.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96543.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96543.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker 安裝 MySQL 和 Redis 完整指南

前言 在開發環境中,使用 Docker 安裝數據庫服務是一種快速、便捷的方式。本文將詳細介紹如何在 macOS 上使用 Docker 安裝 MySQL 和 Redis,并解決國內網絡訪問 Docker Hub 的問題。 環境準備 macOS 系統 Docker Desktop 已安裝 網絡連接 配置 Docker 國內鏡像源 方法一:通…

Spring Boot---自動配置原理和自定義Starter

1.自動配置原理2.自定義starter①dmybatis-spring-boot-autoconfigure步驟一&#xff1a;先創建項目步驟二&#xff1a;導入響應的依賴步驟三&#xff1a;創建自動配置的配置類步驟四&#xff1a;創建配置文件項目結構②dmybatis-spring-boot-starter步驟一&#xff1a;先創建項…

【后端】MySQL 常用 SQL 語句大全

整理一份 MySQL 常用 SQL 語句大全&#xff0c;從基礎操作到進階查詢&#xff0c;都涵蓋。方便日常開發和學習參考。1. 數據庫操作-- 查看所有數據庫 SHOW DATABASES;-- 創建數據庫 CREATE DATABASE db_name;-- 刪除數據庫 DROP DATABASE db_name;-- 使用數據庫 USE db_name;--…

[iOS] 單例模式的深究

文章目錄前言一、什么是單例模式二、單例模式的優缺點優點缺點三、模式介紹1.懶漢模式&#xff08;GCD & 互斥鎖&#xff09;GCD 寫法互斥鎖寫法&#xff08;雙重檢查鎖&#xff09;2.餓漢模式總結懶漢式 互斥鎖&#xff08;Mutex&#xff09;**懶漢式 GCD (dispatch_onc…

解決Discord.py中的/help命令問題

在使用Discord.py開發機器人時,常常會遇到一些常見的問題,比如命令找不到或者命令功能不符合預期。本文將詳細探討如何解決在使用@bot.slash_command定義/help命令時遇到的問題,并提供一個完整的實例來展示如何正確設置這個命令。 問題描述 當你在Discord機器人中輸入/hel…

解決VSCode默認F5配置無法啟動調試器的問題

前幾天做筆試&#xff0c;最后一題代碼有點問題&#xff0c;習慣性地按了個F5啟動gdb發現居然爆炸了&#xff0c;報錯找不到編譯出來的二進制文件&#xff0c;看著像是默認配置的問題&#xff0c;由于時間緊迫最后只能用輸出大法解決。 感覺不可理喻&#xff0c;幾年前調程序的…

webrtc弱網-LossBasedBweV2類源碼分析與算法原理

1. 核心功能LossBasedBweV2是WebRTC Google Congestion Control (GoogCC) 算法套件中的第二代基于丟包的帶寬估計器。它的核心功能是&#xff1a;帶寬估計&#xff1a; 根據網絡數據包的丟失情況&#xff0c;估算當前網絡路徑可用的帶寬上限。其核心假設是&#xff1a;當發送速…

AI代理化檢索:智能信息獲取新范式

代理化檢索(Agentic Retrieval)是一種由AI代理自主管理的信息檢索范式,通過動態規劃、工具調用和多步推理提升復雜查詢的處理能力。其核心機制、技術實現和應用特點如下: 一、核心機制 自主決策循環 代理通過循環執行"規劃-行動-觀察"流程處理查詢: 規劃階段:…

Android Studio中的各種Java版本區別

Android Studio中的各種Java版本 創建一個項目&#xff0c;app模塊的build.gradle.kts默認配置如下&#xff1a; plugins {alias(libs.plugins.android.application)alias(libs.plugins.kotlin.android) }android {namespace "cn.android666.javaversiontest"comp…

ubuntu新增磁盤擴展LV卷

登錄平臺 login as: wqbboy wqbboy172.17.2.86s password: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/proSyst…

Day 16: GAN生成對抗網絡專項 - 從博弈論到藝術創作的完整之旅

Day 16: GAN生成對抗網絡專項 - 從博弈論到藝術創作的完整之旅 ?? 學習目標: 深度掌握生成對抗網絡理論與實踐,從博弈論基礎到風格遷移應用的完整技術棧 ? 學習時長: 6小時深度學習 (理論3小時 + 實踐3小時) ?? 技術棧: PyTorch + 數學推導 + 經典架構 + 實戰應用 ?? 核…

《QT 108好類》之16 QComboBox類

《QT 108好類》之16 QComboBox類QT 108好類之16 QComboBox類QComboBox類特性和應用場景QComboBox類繼承關系QComboBox類使用1 簡單使用2 表單輸入3 使用自定義模型和視圖4 完全自定義彈出窗口QComboBox類類使用效果QT 108好類之16 QComboBox類 QComboBox是 常用的下拉框&#…

項目模塊劃分

項目模塊劃分 服務端模塊&#xff1a; 持久化數據管理中心模塊 在數據管理模塊中管理交換機&#xff0c;隊列&#xff0c;隊列綁定&#xff0c;消息等部分數據數據。 \1. 交換機管理&#xff1a; a. 管理信息&#xff1a;名稱&#xff0c;類型&#xff0c;是否持久化標志&#…

小白也能看懂!OpenCV 從零開始安裝配置全教程(包含Windows / Ubuntu / 樹莓派)系統詳細操作配置教程

小白也能看懂&#xff01;OpenCV 從零開始安裝配置全教程&#xff08;包含Windows / Ubuntu / 樹莓派&#xff09;系統詳細操作配置教程 摘要 本教程是面向“小白也能懂”的OpenCV安裝與配置全攻略&#xff0c;涵蓋Windows、Ubuntu和樹莓派三大平臺&#xff0c;真正實現“從零…

【華為云】容器鏡像服務 SWR 詳解:從上傳下載到 ModelArts 應用

前言 華為云容器鏡像服務&#xff08;Software Repository for Container&#xff0c;簡稱 SWR&#xff09;是華為云提供的企業級容器鏡像倉庫服務。它支持 Docker 鏡像的存儲、管理和分發&#xff0c;為容器化應用提供安全可靠的鏡像托管服務。本文將詳細介紹 SWR 的核心功能…

計算機網絡知識點梳理(一)概述:組成、發展、性能、體系結構等

目錄 一、互聯網 &#xff08;1&#xff09;特點 &#xff08;2&#xff09;網絡的組成 &#xff08;3&#xff09;網絡、互連網、因特網 &#xff08;4&#xff09;互聯網發展的三個階段 &#xff08;5&#xff09;標準化 &#xff08;6&#xff09;組成 二、計算機網…

不同行業視角下的數據分析

聲明&#xff1a;以下部分內容含AI生成 基于行業維度來劃分數據分析崗位&#xff0c;可以幫助我們更好地理解不同行業對數據分析技能、業務知識和職業發展的獨特要求。 目錄 一、總體框架&#xff1a;為什么行業維度如此重要&#xff1f; 二、主要行業劃分及詳細講解 1. 互聯…

「CTF」青少年CTF·雛形系統

題目&#xff1a; 解題過程 嘗試隨便輸入點什么&#xff0c;沒有結果 使用dirsearch掃描網址目錄 可以看到有掃描到一個www.zip&#xff0c;zip文件大概率有需要的東西 網址后加上www.zip就能對該文件進行下載 文件解壓縮后如下 打開qsnctf.php&#xff0c;代碼內容如下 <…

Java實戰項目演示代碼及流的使用

project 準備牌->洗牌->發牌 import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.TreeSet;public class PokerGameplus {static HashMap<Integer,String> hs new HashMap<>();static ArrayList<Int…

使用 OpenLayers + 高德瓦片源實現旅游足跡地圖

作為一個熱愛旅行的開發者&#xff0c;我一直想要一個能夠記錄和展示自己旅游足跡的功能。市面上雖然有很多地圖應用&#xff0c;但大多功能復雜&#xff0c;而我只需要一個簡單直觀的方式來標記去過的地方和想去的地方。 于是我決定在自己的個人網站上實現一個旅游足跡地圖功…