Java分支結構詳解

Java分支結構詳解

  • 前言
  • 一、if 語句
    • 基本語法
      • 表示一
      • 表示二
      • 表示三
    • 代碼示例
      • 判定一個數字是奇數還是偶數
      • 判定一個數字是正數還是負數
      • 判定某一年份是否是閏年
    • 注意要點
      • 懸垂 else 問題
      • 代碼風格問題
      • 分號問題
  • 二、switch 語句
    • 基本語法
    • 代碼示例
      • 根據 day 的值輸出星期
    • 注意事項
      • break 不要遺漏
      • switch 中的值只能是 整數|枚舉|字符|字符串
      • switch 不能表達復雜的條件
      • switch嵌套


前言

推薦一個網站給想要了解或者學習人工智能知識的讀者,這個網站里內容講解通俗易懂且風趣幽默,對我幫助很大。我想與大家分享這個寶藏網站,請點擊下方鏈接查看。
https://www.captainbed.cn/f1

Java中的分支結構用于根據條件執行不同的代碼塊,包括if-else語句、switch語句等,實現程序流程的控制。


一、if 語句

在Java中,if語句是一個條件控制語句,用于根據條件的真假決定是否執行特定的代碼塊。

if語句中,條件是一個布爾表達式,可以是一個比較表達式(例如==!=><等),也可以是一個邏輯表達式(例如&&||!等)。

基本語法

表示一

if(布爾表達式){//條件滿足時執行代碼
}

表示二

if(布爾表達式){//條件滿足時執行代碼
}else{//條件不滿足時執行代碼
}

表示三

if(布爾表達式){//條件滿足時執行代碼
}else if(布爾表達式){//條件滿足時執行代碼
}else{//條件都不滿足時執行代碼
}

代碼示例

判定一個數字是奇數還是偶數

public static void main(String[] args) {int num = 10;if (num % 2 == 0) {System.out.println("num 是偶數");} else {System.out.println("num 是奇數");}
}

以上代碼是一個Java程序的主方法,程序開始執行的入口。在主方法中,定義了一個整型變量num,并初始化為10。

接下來使用if-else語句判斷num是否是偶數。條件表達式num % 2 == 0用于判斷num是否可以被2整除,如果可以,則說明num是偶數,執行if語句中的代碼塊,打印出"num 是偶數"。

如果條件表達式的結果為false,即num不能被2整除,說明num是奇數,執行else語句中的代碼塊,打印出"num 是奇數"。

因為num的值為10,可以被2整除,所以輸出結果為"num 是偶數"。
在這里插入圖片描述

判定一個數字是正數還是負數

public static void main(String[] args) {int num = 10;if (num > 0) {System.out.println("num 是正數");} else if (num < 0) {System.out.println("num 是負數");} else {System.out.println("num 是 0");}
}

以上代碼是一個Java程序的主方法,程序開始執行的入口。在主方法中,定義了一個整型變量num,并初始化為10。

接下來使用if-else if-else語句對num的值進行判斷。首先判斷num是否大于0,如果條件表達式num > 0的結果為true,則執行if語句中的代碼塊,打印出"num 是正數"。

如果條件表達式num > 0的結果為false,則繼續判斷num是否小于0。如果條件表達式num < 0的結果為true,則執行else if語句中的代碼塊,打印出"num 是負數"。

如果以上兩個條件表達式的結果都為false,說明num等于0,執行else語句中的代碼塊,打印出"num 是 0"。

因為num的值為10,大于0,所以輸出結果為"num 是正數"。
在這里插入圖片描述

判定某一年份是否是閏年

public static void main(String[] args) {int year = 2000;if (year % 100 == 0) {// 判定世紀閏年if (year % 400 == 0) {System.out.println("是閏年");} else {System.out.println("不是閏年");}} else {// 普通閏年if (year % 4 == 0) {System.out.println("是閏年");} else {System.out.println("不是閏年");}}
}

以上代碼是一個Java程序的主方法,程序開始執行的入口。在主方法中,定義了一個整型變量year,并初始化為2000。

接下來使用嵌套的if-else語句對year進行判斷,判斷year是否是閏年。

首先判斷year是否能被100整除,即條件表達式year % 100 == 0的結果。如果條件表達式的結果為true,則執行if語句中的代碼塊,進一步判斷是否是世紀閏年。

if語句中,判斷year是否能被400整除,即條件表達式year % 400 == 0的結果。如果條件表達式的結果為true,則輸出"是閏年"。如果條件表達式的結果為false,則輸出"不是閏年"。

如果條件表達式year % 100 == 0的結果為false,則執行else語句中的代碼塊,判斷是否是普通閏年。

else語句中,判斷year是否能被4整除,即條件表達式year % 4 == 0的結果。如果條件表達式的結果為true,則輸出"是閏年"。如果條件表達式的結果為false,則輸出"不是閏年"。

因為year的值為2000,滿足條件year % 100 == 0,進一步滿足條件year % 400 == 0,所以輸出結果為"是閏年"。
在這里插入圖片描述

注意要點

懸垂 else 問題

public static void main(String[] args) {int x = 10;int y = 10;if (x == 10)if (y == 10)System.out.println("aaa");elseSystem.out.println("bbb");
}

在這里插入圖片描述
if / else 語句中可以不加 大括號 . 但是也可以寫語句(只能寫一條語句).

此時 else 是和最接近的 if 匹配.

但是實際開發中我們 不建議 這么寫. 最好加上大括號

代碼風格問題

public static void main(String[] args) {// 風格1int x = 10;if (x == 10) {// 滿足條件} else {// 不滿足條件}
// 風格2int x = 10;if (x == 10){// 滿足條件}else{// 不滿足條件}
}

雖然兩種方式都是合法的, 但是 Java 中更推薦使用風格1, { 放在 if / else 同一行.

分號問題

public static void main(String[] args) {int x = 20;if (x == 10); {System.out.println("hehe");}
}

在這里插入圖片描述
此處多寫了一個 分號, 導致分號成為了 if 語句的語句體, 而 { } 中的代碼已經成為了和一個 if 無關的代碼塊.

二、switch 語句

基本語法

public static void main(String[] args) {switch(整數|枚舉|字符|字符串){case 內容1 : {內容滿足時執行語句;[break;]}case 內容2 : {內容滿足時執行語句;[break;]}...default:{內容都不滿足時執行語句;[break;]}}
}

代碼示例

根據 day 的值輸出星期

public static void main(String[] args) {int day = 1;switch(day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;case 6:System.out.println("星期六");break;case 7:System.out.println("星期日");break;default:System.out.println("輸入有誤");break;}
}

這段代碼使用了Switch語句來根據一個整型變量day的值輸出對應的星期幾。Switch語句中的每個case對應了一個可能的day值,當day的值滿足某個case時,會執行該case下的語句,并且使用break語句跳出Switch語句。如果day的值不滿足任何一個case,那么會執行default下的語句。在這段代碼中,day的值為1,所以輸出為"星期一"。
在這里插入圖片描述
根據 switch 中值的不同, 會執行對應的 case 語句.

遇到 break 就會結束該 case 語句.

如果 switch 中的值沒有匹配的 case, 就會執行 default 中的語句.

我們建議一個 switch 語句最好都要帶上 default.

注意事項

break 不要遺漏

否則會失去 “多分支選擇” 的效果

public static void main(String[] args) {int day = 1;switch(day) {case 1:System.out.println("星期一");// break;case 2:System.out.println("星期二");break;}
}

在這里插入圖片描述
我們發現, 不寫 break 的時候, case 語句會依次向下執行, 從而失去了多分支的效果.

switch 中的值只能是 整數|枚舉|字符|字符串

public static void main(String[] args) {double num = 1.0;switch(num) {case 1.0:System.out.println("hehe");break;case 2.0:System.out.println("haha");break;}
}

在這里插入圖片描述

switch 不能表達復雜的條件

public static void main(String[] args) {// 例如: 如果 num 的值在 10 到 20 之間, 就打印 hehe
// 這樣的代碼使用 if 很容易表達, 但是使用 switch 就無法表示.if (num > 10 && num < 20) {System.out.println("hehe");}
}

在這里插入圖片描述

switch嵌套

雖然可以運行,但是不美觀,少用

public static void main(String[] args) {int x = 1;int y = 1;switch(x) {case 1:switch(y) {case 1:System.out.println("hehe");break;}break;case 2:System.out.println("haha");break;}
}

在這里插入圖片描述


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

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

相關文章

深入了解 Pandas:對象的缺少值

目錄 前言 第一點&#xff1a;導入模塊 第二點 &#xff1a;發現對象的缺失值 第二點&#xff1a;剔除缺少值 第三點&#xff1a;填補缺失值 總結 前言 在數據處理中&#xff0c;經常會遇到數據中存在缺失值的情況。處理缺失值是數據清洗的一個重要環節&#xff0c;能夠確…

spring常用知識點

1、攔截器和過濾器區別 1. 原理不同&#xff1a; 攔截器是基于java的反射機制&#xff0c;而過濾器采用責任鏈模式是基于函數回調的。 2. 使用范圍不同&#xff1a; 過濾器Filter的使用依賴于Tomcat等容器&#xff0c;導致它只能在web程序中使用 攔截器是一個Sping組件&am…

abs(-2147483648) == 2147483648?

從數學意義上&#xff0c;這是對的。但是&#xff0c;就怕但是。 #include int main() {long long v;v abs(-2147483648);printf("%lld\n", v);return 0; } 輸出: -2147483648 我們從source code中一一解開. /* Return the absolute value of I. */ int abs (…

Mongodb介紹及springboot集成增刪改查

文章目錄 1. MongoDB相關概念1.1 業務應用場景1.2 MongoDB簡介1.3 體系結構1.4 數據模型1.5 MongoDB的特點 2. docker安裝mongodb3. springboot集成3.1 文件結構3.2 增刪改查3.2.1 增加insert3.2.2 保存save3.2.3 更新update3.2.4 查詢3.2.5 刪除 1. MongoDB相關概念 1.1 業務…

Docker-Android安卓模擬器本地部署并實現遠程開發測試

文章目錄 1. 虛擬化環境檢查2. Android 模擬器部署3. Ubuntu安裝Cpolar4. 配置公網地址5. 遠程訪問小結 6. 固定Cpolar公網地址7. 固定地址訪問 本文主要介紹如何在Ubuntu系統使用Docker部署docker-android安卓模擬器&#xff0c;并結合cpolar內網穿透工具實現公網遠程訪問本地…

51建模網AR虛擬試用,讓網購不再只靠想象!

在數字化的浪潮中&#xff0c;網購已成為現代人生活的一部分。然而&#xff0c;傳統的網購模式常常因為無法直接試穿、試用商品&#xff0c;導致買家在收到商品后感到失望&#xff0c;特別是面對大件家居產品時&#xff0c;僅憑屏幕上的圖片和尺寸描述&#xff0c;很難準確地把…

智能AI愈發強大,企業如何防范AI網絡釣魚攻擊

隨著AI技術的快速發展&#xff0c;如ChatGPT等智能化工具在各個領域得到了廣泛應用。然而&#xff0c;這些工具的普及也給網絡安全帶來了新的挑戰。AI模型的自然語言生成功能使得網絡釣魚攻擊更加智能化和隱蔽化&#xff0c;攻擊者能夠利用AI技術生成高度逼真的欺騙性郵件和其他…

深度學習之基于YoloV5人體姿態摔倒識別分析報警系統

歡迎大家點贊、收藏、關注、評論啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 隨著人口老齡化的加劇和人們對健康安全的日益關注&#xff0c;摔倒事件在老年人、幼兒、體育運…

2024-05-23 服務器開發-windows-加載dll動態庫

摘要: 2024-05-23 服務器開發-windows-加載dll動態庫 使用 LoadLibrary HMODULE mdl ::LoadLibrary(L"mylib.dll");if (!mdl){auto err ::GetLastError();std::cout << "ERROR: load VxCfgClient fail, error: " << err << std::endl…

分布式文件系統minIo

分布式文件系統 什么是分布式文件系統 一個計算機無法存儲海量的文件&#xff0c;通過網絡將若干計算機組織起來共同去存儲海量的文件&#xff0c;去接收海量用戶的請求&#xff0c;這些組織起來的計算機通過網絡進行通信&#xff0c;如下圖&#xff1a; 好處&#xff1a; 1、…

怎么ai思維導圖自動生成?推薦這三個工具

怎么ai思維導圖自動生成&#xff1f;隨著人工智能&#xff08;AI&#xff09;技術的不斷發展&#xff0c;其在各個領域的應用也日益廣泛。在思維導圖這一領域&#xff0c;AI技術的引入不僅極大地提高了制圖效率&#xff0c;還為用戶提供了更多樣化、個性化的制圖體驗。本文將為…

JavaScript身份三要素認證API、身份證二要素實名認證接口

996這種工作模式&#xff0c;試問有多少人愿意接受&#xff1f;然而這種工作制度在程序員的圈子里早已成為不成文的“規定”。網絡段子也有不少調侃程序員的&#xff0c;比如&#xff1a;一程序員去面試&#xff0c;面試官問&#xff1a;“你畢業才兩年&#xff0c;這三年工作經…

基于消息中間件的異步通信機制在系統解耦中的優化與實現

??謝謝大家捧場&#xff0c;祝屏幕前的小伙伴們每天都有好運相伴左右&#xff0c;一定要天天開心哦&#xff01;?? &#x1f388;&#x1f388;作者主頁&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; ?? 帥哥美女們&#xff0c;我們共同加油&#xff01;一起進步&am…

【只會for循環? 來看下, Nodejs中典型的5種循環方式】

Nodejs中的&#xff0c;除了經典的for循環 , 其實還有幾種好用的循環方式&#xff0c; 并有典型的使用場景。下面來一起看下&#x1f447;&#x1f3fb; 5種循環用法 For Loop&#xff1a;這是最常見的循環方式&#xff0c;適用于你知道循環次數的情況。 for (let i 0; i &…

GPT-SoVITS語音克隆部署與使用

GPT-SoVITS是一款強大的少量樣本語音轉換與語音合成開源工具。當前&#xff0c;GPT-SoVITS實現了如下幾個方面的功能&#xff1a; 由參考音頻的情感、音色、語速控制合成音頻的情感、音色、語速可以少量語音微調訓練&#xff0c;也可不訓練直接推理可以跨語種生成&#xff0c;…

【AI】試用 ai 提取文章內容嘗試

電梯產業面臨這樣一個問題&#xff0c;因為太多的品牌&#xff0c;將近 400 多個&#xff0c;甚至有寶馬&#xff0c;奧迪&#xff0c;你敢相信&#xff0c;一家造汽車的造過電梯?不過好像想想也是&#xff0c;電梯是第二大交通工具&#xff0c;電梯從某種意義上來說&#xff…

無網環境禁止 WPS 提示登錄,且基本功能按鈕可用

目前 WPS 升級后&#xff0c;每次打開都會提示你登錄 WPS&#xff0c;并且在未登錄之前所有基本功能按鈕是置灰狀態&#xff0c;無法使用。 如此一來&#xff0c;在內網或無網環境&#xff0c;我們無法登陸 WPS &#xff0c;就給我們的使用帶來了極大的不便&#xff0c;那么有沒…

全網最全面的由淺到深的Kotlin基礎教程(七)

前言 本篇文章接著上一篇文章全網最全面的由淺到深的Kotlin基礎教程&#xff08;六&#xff09;繼續進階學習kotlin&#xff0c;建議看完上一篇文章&#xff0c;再來看本篇文章。本篇主要分析一些常用的kotlin函數源碼&#xff0c;以及用kotlin簡單實現Rxjava的幾個操作符。堅…

卡梅德生物噬菌體展示多肽庫

噬菌體展示多肽文庫在新藥發現領域展現出巨大的潛力和應用價值。卡梅德生物的噬菌體展示肽庫通過將大量肽序列插入到噬菌體基因組中&#xff0c;并在噬菌體表面展示這些肽&#xff0c;構建了一個多樣性的肽庫。 在新藥發現過程中&#xff0c;噬菌體展示多肽文庫可以用于篩選具有…

全志A133 android10 調試vibrator震動馬達

一&#xff0c;前提條件 全志使用的馬達配置為上電震動&#xff0c;下電停止&#xff0c;需測試硬件是否正常。馬達供電最好為獨立供電&#xff0c;避免干擾。 二&#xff0c;適配步驟 1. dts中增加馬達配置 motor_para {compatible "allwinner,sunxi-vibrator";…