從入門到精通:Java三目運算符詳細教程!

哈嘍,各位小伙伴們,你們好呀,我是喵手。運營社區:C站/掘金/騰訊云;歡迎大家常來逛逛

??今天我要給大家分享一些自己日常學習到的一些知識點,并以文字的形式跟大家一起交流,互相學習,一個人雖可以走的更快,但一群人可以走的更遠。

??我是一名后端開發愛好者,工作日常接觸到最多的就是Java語言啦,所以我都盡量抽業余時間把自己所學到所會的,通過文章的形式進行輸出,希望以這種方式幫助到更多的初學者或者想入門的小伙伴們,同時也能對自己的技術進行沉淀,加以復盤,查缺補漏。

小伙伴們在批閱的過程中,如果覺得文章不錯,歡迎點贊、收藏、關注哦。三連即是對作者我寫作道路上最好的鼓勵與支持!

前言

??Java作為一門面向對象的編程語言,其特點體現在復雜對象的抽象、繼承、多態、封裝等方面。而作為一個程序員需要
靈活運用Java語言的各種特性。本文將介紹Java語言中的三目運算符。

摘要

??本文將介紹Java語言中的三目運算符,包括其概念、語法、源代碼解析、應用場景案例、優缺點分析、類代碼方法介紹、測試用例(以main函數寫法為準)、全文小結、總結。

Java之三目運算符

簡介

??Java語言中的三目運算符是一種特殊的運算符,常用于Java程序的條件判斷部分。它的語法結構如下:

條件 ? 表達式1 : 表達式2

等價于下面的

(condition)?expr1:expr2

??其中,如果condition表達式的返回值為true,則返回expr1的值;否則,返回expr2的值。它是一個非常靈活、簡單易懂的運算符,經常被用在需要進行條件判斷的場合中,比如if語句、循環語句等。

源代碼解析

下面是三目運算符的源代碼解析:

public class ThreeOperatorsDemo {public static void main(String[] args) {int a, b;a = 10;b = (a == 1) ? 20: 30;System.out.println( "Value of b is : " + b );b = (a == 10) ? 20: 30;System.out.println( "Value of b is : " + b );}
}

??上述代碼定義了兩個整型變量a和b,在第一個三目運算符中,判斷a是否等于1,如果是,則將b的值賦為20,否則賦為30;在第二個三目運算符中,判斷a是否等于10,如果是,則將b的值賦為20,否則賦為30。最終輸出b的值,結果為:

Value of b is : 30
Value of b is : 20

具體執行結果如下:

在這里插入圖片描述

應用場景案例

??三目運算符常用于Java程序的條件判斷部分,例如:

int max = (a > b) ? a : b;

??上述代碼中,如果a大于b,則將a的值賦給max,否則將b的值賦給max。

??例如再給大家演示一下其常用場景:

  1. 判斷輸入的數字是否為奇數或偶數
String result = (num % 2 == 0) ? "偶數" : "奇數";

拓展:

??這段代碼是一個三目運算符,用于判斷變量num是否為偶數,如果是,將字符串"偶數"賦值給變量result,否則將字符串"奇數"賦值給變量result。

??三目運算符的語法格式為:condition ? expr1 : expr2,其中condition是一個布爾表達式,如果為true,則返回expr1,否則返回expr2。在這段代碼中,condition為(num % 2 == 0),表示判斷變量num是否能夠被2整除,如果能夠被整除,則返回true,否則返回false。expr1為"偶數",expr2為"奇數"。

  1. 判斷兩個數字哪個更大
int max = (a > b) ? a : b;

拓展:

??這是一個三目運算符,格式為:(condition) ? value1 : value2,其作用是根據條件的真假來選擇value1或value2的值。

??在此代碼中,意思是如果a大于b,則將max的值設為a,否則將max的值設為b。等價于以下普通if語句:

int max;
if (a > b) {max = a;
} else {max = b;
}
  1. 判斷一個字符串是否為空
String str = "";
boolean isEmpty = (str == null || str.trim().isEmpty()) ? true : false;

拓展:

??這段代碼定義了一個字符串變量 str,初始值為空字符串。接著,使用三目運算符判斷字符串是否為空,如果為空或只包含空格,則將布爾變量 isEmpty 賦值為 true,否則將其賦值為 false

具體解釋如下:

  • str == null 部分判斷字符串是否為 null。
  • str.trim().isEmpty() 部分判斷字符串去除空格后是否為空。

??如果上述兩個條件有一個滿足,則 isEmpty 變量被賦值為 true,否則被賦值為 false

??該段代碼的作用是檢查字符串是否為空或只包含空格,并將結果返回給布爾變量 isEmpty,方便后續的操作。

優缺點分析

優點

  • 三目運算符簡單易懂,能夠有效提高程序的可讀性和簡潔性。
  • 三目運算符可以避免代碼中大量的嵌套if語句,降低代碼的復雜度。

缺點

  • 三目運算符只適用于簡單的條件判斷,對于較為復雜的判斷條件,使用三目運算符會使代碼更加難以理解。
  • 三目運算符的使用需要慎重,過多的使用會降低代碼的可讀性和可維護性。

類代碼方法介紹

??以下是三目運算符的方法介紹:

方法名方法描述
?:三目運算符

??如下為使用三目運算符判斷兩個數中較大值的代碼實現:示例如下:

代碼演示

public class ThreeOperatorsDemo {public static void main(String[] args) {int a = 5;int b = 10;int max = (a > b) ? a : b;System.out.println("兩個數中較大的是:" + max);}
}

測試結果

??根據如上測試用例,本地測試結果如下,僅供參考,你們也可以自行修改測試用例或者添加更多的測試數據或測試方法,進行熟練學習以此加深理解。

在這里插入圖片描述

代碼分析

??根據如上測試用例,在此我給大家進行深入詳細的解讀一下測試代碼,以便于更多的同學能夠理解并加深印象。
??如上用例代碼演示了Java中的三目運算符。在該代碼中,定義了兩個整型變量a和b,并使用三目運算符求出a和b中的較大值,將其賦值給變量max,最后輸出max的值。運行該代碼,輸出結果為"兩個數中較大的是:10"。

測試用例

以下是三目運算符的測試用例:

測試代碼演示

package com.example.javase.se.operators;/*** Java之三目運算符演示** @Author ms* @Date 2023-11-08 11:00*/
public class ThreeOperatorsDemo {public static void main(String[] args) {int a, b;a = 10;b = (a == 1) ? 20 : 30;System.out.println("Value of b is : " + b);b = (a == 10) ? 20 : 30;System.out.println("Value of b is : " + b);}
}

測試結果

??根據如上測試用例,本地測試結果如下,僅供參考,你們也可以自行修改測試用例或者添加更多的測試數據或測試方法,進行熟練學習以此加深理解。

在這里插入圖片描述

測試代碼分析

??根據如上測試用例,在此我給大家進行深入詳細的解讀一下測試代碼,以便于更多的同學能夠理解并加深印象。

??這段代碼演示了 Java 的三目運算符。

??在代碼中,首先定義了兩個整型變量 a 和 b,并將 a 賦值為 10。然后使用三目運算符語法,將 (a == 1) 作為條件表達式,如果條件成立則將 b 賦值為 20,否則賦值為 30。此時因為 a 不等于 1,所以 b 的值將為 30,并輸出 “Value of b is : 30”。

??接著,將條件表達式改為 (a == 10),由于 a 等于 10,所以條件成立,將 b 賦值為 20,因此輸出 “Value of b is : 20”。

全文小結

??本文介紹了Java語言中的三目運算符的概念、語法、源代碼解析、應用場景案例、優缺點分析、類代碼方法介紹、測試用例。通過本文的介紹,相信大家已經對三目運算符有了更深入的了解。

總結

??三目運算符是Java語言中的一種特殊的運算符,常用于Java程序的條件判斷部分。它的優點是可以簡化代碼,提高代碼的可讀性,缺點是如果過多使用三目運算符,會導致代碼可讀性降低,不易維護。在實際的Java開發中,需要根據具體的情況選擇適合的條件判斷方式,靈活運用Java語言的各種特性。

… …

文末

好啦,以上就是我這期的全部內容,如果有任何疑問,歡迎下方留言哦,咱們下期見。

… …

學習不分先后,知識不分多少;事無巨細,當以虛心求教;三人行,必有我師焉!!!

wished for you successed !!!


??若喜歡我,就請關注我叭。

??若對您有用,就請點贊叭。

??若有疑問,就請評論留言告訴我叭。

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

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

相關文章

富格林:謹慎欺詐套路防止被騙

富格林指出,近些年來,在全球風險事件頻發的背景下,黃金的避險價值得以凸顯,越來越多投資者被黃金市場可觀的收益所吸引,紛紛加入黃金市場參與投資交易。很多初次接觸黃金的投資者比較關心的是普通投資者如何謹慎欺詐套…

x264 參考幀管理原理:b_ref_reorder 數組變量

b_ref_reorder變量 在x264編碼器中,b_ref_reorder是一個布爾類型的數組,用于標識當前編碼的切片是否需要對參考幀列表進行重排序。這個數組通常有兩個元素,分別對應于兩個參考幀列表:前向參考幀列表(list0)和后向參考幀列表(list1)。 以下是b_ref_reorder的一些關鍵點:…

探索 Linux 中的 Chronyc:一個用于配置和管理 Chrony 的實用工具

探索 Linux 中的 Chronyc:一個用于配置和管理 Chrony 的實用工具 在 Linux 系統中,時間同步是一個至關重要的功能,它確保了系統時間的準確性,對于各種網絡服務和應用來說都至關重要。Chrony 是一個開源的時間同步工具&#xff0c…

SQLserver通過CLR調用TCP接口

一、SQLserver啟用CLR 查看是否開啟CRL,如果run_value1,則表示開啟 EXEC sp_configure clr enabled; GO RECONFIGURE; GO如果未啟用,則執行如下命令啟用CLR sp_configure clr enabled, 1; GO RECONFIGURE; GO二、創建 CLR 程序集 創建新項…

Vue3:eachars 折線圖 數據不聯動 和 tooltip: trigger: ‘axis‘ 不生效,不提示數據

問題1: 點擊折線圖的頭部數據(Email、UnionAds等) 下面數據線不聯動問題 問題2:下圖是沒有提示數據的Demo 這是echars官網的提示數據圖 3.解決辦法 (1)檢查是否設置:trigger:axi…

spring 使用多線程,保證事務一致性

1、背景 最近接受到接口優化的任務,查看代碼邏輯后發現在批量處理數據耗時長,想到使用多線程處理批量數據,又要保持原來的事務一致性。 2、實現方法 (1)、創建多線程事務管理 Component Slf4j public class MultiT…

海外BGP服務器有什么功能?

當企業選擇海外的BGP服務器進行租用時,能夠實現哪些功能呢? 當企業擁有海外的BGP服務器時,可以改善網站的訪問速度,對于面向全球用戶的網站或者是應用來說,能夠通過在不同區域所部署的BGP服務器,用戶可以根…

【Unity Shader入門精要 第13章】使用深度和法線紋理(一)

1. 原理 深度紋理的本質是一張RenderTexture,只不過其中記錄的不是顏色值,而是一個深度值 這些深度值來自于頂點在空間變換后得到的歸一化設備坐標(NDC)的Z值 由于NDC坐標的分量取值范圍在[-1, 1]之間,要使顏色值能…

基于pytorch的車牌識別

🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客🍖 原作者:K同學啊 一、導入數據 from torchvision.transforms import transforms from torch.utils.data import DataLoader from torchvision import datase…

RSA 非對稱加密:

非對稱加密 RSA 擁有兩個密鑰, 分別為 公鑰 和 私鑰, 服務器端擁有公鑰和私鑰, 二客戶端,只有公鑰, 這個公鑰可以隨便傳,即使被截獲也沒有關系, 加密使用公鑰, 而解密,…

Mysql時間操作

一、MySql時間戳轉換 select unix_timestamp(); #獲取時間戳格式時間 select FROM_UNIXTIME(1717399499); #將時間戳轉換為普通格式時間二、Mysql時間相加減結果轉換為秒 方法1:time_to_sec(timediff(endTime, startTime)) SELECTDISTINCT(column1),min(last_mo…

在Jenkins 中使用 NVM 管理 Node.js 部署項目的自動化腳本

在Jenkins 中使用 NVM 管理 Node.js 部署項目的自動化腳本 人生旅途,總有人不斷地走來,有人不斷地離去。當新名字變成老名字,當老的名字漸漸模糊,又是一個故事的結束和另一個故事的開始。 在現代軟件開發中,持續集成/持…

容器化實踐:DevOps環境下的容器交付流程

DevOps的興起是為了應對市場和消費者對技術應用的不斷增長的需求。它的目標是構建一個更快的開發環境,同時保持軟件的高質量標準。DevOps還致力于在敏捷開發周期中提升軟件的整體品質。這一目標的實現依賴于多種技術、平臺和工具的綜合運用。 結合容器化技術與DevO…

深入理解mysql中的各種超時屬性

1. 前言 connectTimeout: 連接超時 loginTimeout: 登錄超時 socketTimeout: Socket網絡超時,即讀超時 queryTimeout: sql執行超時 transactionTimeout:spring事務超時 innodb_lock_wait_timeout:innodb鎖等待超時 wait_timeout:非交互式連接關閉前的等待時間 inter…

uniapp小程序多線程 Worker 實戰【2024】

需求 最近遇到個小程序異步解碼的需求,采用了WebAssembly,涉及大量的計算。由于小程序的雙線程模型只有一個線程處理數據,因此智能尋求其它的解決方案。查看小程序的文檔,發現小程序還提供一個異步線程的Worker方案,可…

代碼隨想錄算法訓練營第25天|回溯

回溯part02 216. 組合總和 III /*** param {number} k* param {number} n* return {number[][]}*/ var combinationSum3 function(k, n) {// k個數字相加為n// 只能使用1-9// 每個數字只能使用一次// 不能重復 如 1 2 4 、 4 1 2 不可以let res [];backtracking(k, n, [], …

聯想Y410P跑大模型

安裝vs 2017 查看GPU版本 查看支持哪個版本的cuda windows cuda更新教程_cuda 12.0-CSDN博客 下載并安裝cuda tookit 10.1 CUDA Toolkit 10.1 Update 2 Archive | NVIDIA Developer 找到下載的文件,安裝 參考安裝鏈接 Win10 Vs2017 CUDA10.1安裝(避坑…

Due to a bug fix in https://github.com/huggingface/transformers/pull/28687

錯誤: Due to a bug fix in https://github.com/huggingface/transformers/pull/28687 transcription using a multilingual Whisper will default to language detection followed by transcription instead of translation to English.This might be a breaking …

InnoDB存儲引擎非常重要的一個機制--MVCC(多版本并發控制)

Mysql是如何實現隔離性的?(鎖MVCC) 隔離性是指一個事務內部的操作以及操作的數據對正在進行的其他事務是隔離的,并發執行的各個事務之間不能相互干擾。隔離性可以防止多個事務并發執行時,可能存在交叉執行導致數據的不…

安全U盤和普通U盤有什么區別?

安全U盤(也稱為加密U盤或安全閃存驅動器)與普通U盤肯定是有一些區別的,從字面意思上來看,就能看出,安全U盤是能夠保護文件數據安全性的,普通U盤沒這一些功能的,可隨意拷貝文件,不防盜…