Java 操作符:Java 中操作符優先級、一二三元操作符及邏輯操作符的中德模佛定理

文章目錄

  • 前言
  • 一、操作符介紹與優先級表
  • 二、一元運算符與二元運算符的區別?
  • 三、Java 中唯一的三元操作符
  • 四、邏輯操作符中的德模佛定理
  • 總結


前言

在 Java 中我們常見的操作符分為三種,分別是邏輯操作符、關系操作符、算術操作符,其優先級和結合規則確定了操作符計算的順序,那么你會具體運用它們嗎?又有哪些注意事項呢?它們各自的優先級又該如何區分呢?德模佛定理又該如何應用呢?本文來帶你詳細了解。

在這里插入圖片描述


一、操作符介紹與優先級表

我們常見的操作符分為三種,其優先級為:邏輯操作符 < 關系操作符 < 算術操作符

  • 邏輯操作符(也稱布爾操作符),是對布爾值進行的運算,它會創建新的布爾值。包括:非(!)、與(&&)、或(||)、異或(^)。
  • 關系操作符(<、<=、==、!=、>、>=)產生一個布爾值。

優先級規則定義了操作符的先后次序,下表按照從上到下按優先級遞減的方式排列

優先級操作符
最高級var++和var- -(后置操作符)
+、-(一元加號和一元減號)、++var、- -var(前置操作符)
(type)類型轉換
!(非)
*、/、%(乘法、除法和求余運算)
+、-(二元加法和減法)
<、<=、>、>=(比較操作符)
==、!=(相等操作符)
^(亦或)
&&(條件與)
(條件或)
最低級=、+=、-=、*=、/=、%=(賦值操作符)

注意:所有的二元操作符都是左結合(left-associative),賦值操作符是右結合(right-associative)。

二、一元運算符與二元運算符的區別?

一元運算符有且只有一個運算參數,二元運算符有且只有兩個運算參數。

例如

  • 一元運算符,如負號 - 1 : 它只能運算一個數據。
  • 二元運算符,如加號 1 + 2 :參加運算的只能是兩個數據,多或者少都出錯,它是二元運算符。

三、Java 中唯一的三元操作符

符號?在條件表達式中同時出現。它們構成一種條件操作符,因為操作數有三個,所以稱為三元操作符(ternary operator),它是 Java 中唯一的三元操作符

在 Java 中的條件表達式基本形式如下:

boolean-expression ? expression1 : expression2;(布爾表達式? 表達式1: 表達式2)

如果布爾表達式的值為 true,則條件表達式的結果為表達式 expression1,否則結果為 expression2。我們通常使用三元操作符來改寫 if else 條件語句。

如我們現在實現一個判斷票價的條件語句:年齡 age 小于 16 歲半價門票 ticketPrice 為 10 元,否則為全票 20 元。

首先用常規的 if else 條件語句實現,代碼如下:

if (age >= 16) {ticketPrice = 20;} else {ticketPrice = 10;}

接著我們使用三元操作符來改寫,代碼如下:

ticketPrice = (age >= 16) ? 20 : 10;

如示例所示,三元操作符的條件表達式可以編寫更精簡的代碼

四、邏輯操作符中的德模佛定理

德模佛定理是以印度出生的英國數學家和邏輯學家奧古斯都?德?模佛來命名的(1806——1871),這個定理可以用來簡化表達式

定義描述如下:

!(condition1 && condition2)!condition1 || !condition2是等價的,
!(condition1 || condition2)!condition1 && !condition2是等價的。

即:

!(number % 2 == 0 && number % 3 == 0)等價于!number % 2 == 0 || !number % 3 == 0
!(number % 2 == 0 || number % 3 == 0)等價于!number % 2 == 0 && !number % 3 == 0

總結

本文給大家介紹了 Java 中操作符優先級、一二三元操作符以及邏輯操作符中德模佛定理。這些都是 Java 的基礎,基礎扎實,后期才可以穩步提升。其中的三元操作符有時候運用起來遠比使用條件語句快得多,時間復雜度會大大降低。

在這里插入圖片描述


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!

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

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

相關文章

Java 答疑:編譯器和解釋器有何區別?Java 語言屬于編譯型編程語言還是解釋型編程語言?

文章目錄前言一、Java 與 Java 字節碼二、什么是編譯器&#xff08;Compiler&#xff09;三、什么是解釋器&#xff08;Interpreter&#xff09;四、編譯器與解釋器有何區別&#xff1f;五、Java 語言屬于哪種語言&#xff1f;總結前言 我們都知道開發語言整體分為兩類&#xf…

Java 案例練習:編寫 Java 程序,輸入年份和月份,使用 switch 結構計算對應月份的天數。月份為 1、3、5、7、8、10、12 時,天數為 31 天。月份為 4、6、9、11 時,天數為

文章目錄一、練習題目二、使用 switch 語句實現代碼三、將代碼改寫回 if else 的選擇結構一、練習題目 編寫 Java 程序&#xff0c;輸入年份和月份&#xff0c;使用 switch 結構計算對應月份的天數。 月份為 1、3、5、7、8、10、12 時&#xff0c;天數為 31 天。 月份為 4、6、…

SRA 案例練習:解釋 CRUD 矩陣方法,并從上面 “用于化學品跟蹤管理系統的 CRUDL 矩陣示例”圖中找出被遺漏的需求,并解釋是如何找的?

文章目錄 一、練習題目二、CRUD 矩陣介紹三、矩陣分析四、尋找遺漏需求一、練習題目 解釋 CRUD 矩陣方法,并從上面 “用于化學品跟蹤管理系統的 CRUDL 矩陣示例”圖中找出被遺漏的需求,并解釋是如何找的。 二、CRUD 矩陣介紹 CRUD 矩陣是用于尋找遺漏需求比較精確的方法,其…

《軟件需求分析(第二版)》第 14 章——需求管理的原則和實踐 重點部分總結

文章目錄 前言一、討論二、簡答題三、名詞解釋總結前言 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清…

《軟件需求分析(第二版)》第 15 章——變更管理 重點部分總結

文章目錄 前言一、討論二、判斷題三、簡答題總結前言 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰…

《軟件需求分析(第二版)》第 16 章——需求鏈中的聯系鏈 重點部分總結

文章目錄 前言一、討論總結前言 軟件需求分析就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求。本文是…

《軟件項目管理(第二版)》第 10 章——項目收尾 重點部分總結

文章目錄 前言一、討論二、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 10 章——項目…

《軟件項目管理(第二版)》第 9 章——項目監督與控制 重點部分總結

文章目錄 前言一、討論二、選擇題三、判斷題四、簡答題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版…

SSM(Spring+Spring MVC+Mybatis)整合 1:整體概述、目錄內容及實驗環境介紹

文章目錄 前言一、概述二、系列文章全目錄三、實驗環境總結前言 通過本次 Java EE 三大框架(Spring、Spring MVC、MyBatis)原理、技術和方法的整合,大量的項目實踐實際動手能力,解決總結在 SSM 項目中存在的問題,為畢業設計以及后期從事 Java 相關開發工作打下堅實的基礎。…

Tomcat 服務:解決 Apache Tomcat 更新后 Tomcat9w.exe 無法啟動 Tomcat 服務的問題

解決 Tomcat9w.exe 無法啟動 Tomcat 服務的問題/解決 Apache Tomcat 更新后 Apache Tomcat 9.0 Tomcat9 Properties 配置不匹配的問題 文章目錄解決 Tomcat9w.exe 無法啟動 Tomcat 服務的問題/解決 Apache Tomcat 更新后 Apache Tomcat 9.0 Tomcat9 Properties 配置不匹配的問題…

IDEA 新手入門:創建項目/包/類、運行/關閉/導入項目、字體/字號設置、常用快捷鍵等使用詳解

文章目錄前言一、創建新項目 Project1.1、選擇“Create New Project”1.2、選擇左下角的“Empty Project”1.3、輸入項目名稱并選擇保存路徑二、創建新模塊 Module2.1、在彈出的“New Module”窗口中&#xff0c;點擊“New”2.2、根據項目需要&#xff0c;選擇合適的 SDK2.3、對…

IDEA/Tomcat 原理:如何將 Tomcat 集成到 IDEA?實現由傳統部署延伸到熱部署 Java EE 項目?

文章目錄前言一、將 Tomcat 集成到 IDEA 中1.1、進入 IDEA Tomcat 配置頁面1.2、配置并集成 Tomcat1.3、配置完成說明1.4、集成檢查1.4.1、檢查主頁面信息及服務器配置信息二、創建并部署 Java EE 項目2.1、創建新項目或者模塊&#xff08;自行選擇&#xff09;2.2、進行 Java …

SSM 整合 2:Java EE 開發環境的搭建(JDK 配置、Tomcat 安裝、IDE 安裝、IDE 集成 Tomcat、Spring 及其組件的下載)

文章目錄 前言一、安裝并配置 JDK1.1、下載并安裝 JDK1.2、配置環境變量1.2.1、從控制面板進入用戶變量設置1.2.2、新建用戶變量 Java_Home 和 Path(根據自己安裝目錄設置)1.2.3、檢測 JDK 是否安裝成功二、安裝 Tomcat 應用服務器2.1、下載 apache-tomcat-9.02.2、啟動 Tomc…

Eclipse 答疑:如何使用 Eclipse 進行斷點(Breakpoints)調試?

文章目錄前言一、打開需要調試的程序二、設置斷點三、進行代碼調試3.1、在上方標簽欄&#xff0c;點擊“Debug As→Java Application”3.2、進入調試頁面并查看設置斷點的具體位置信息3.3、產看具體變量信息總結前言 我們在使用 Eclipse 進行代碼調試時&#xff0c;可以選擇在一…

在 Windows 命令提示符下啟動 MySQL:net start mysql 發生系統錯誤 5。 拒絕訪問。解決方式小結

文章目錄前言一、錯誤描述二、錯誤產生場景三、產生錯誤原因四、解決方式總結前言 我們有時候需要通過 Windows 命令提示符來啟動 MySQL 服務&#xff0c;但是如果你不注意操作權限的話&#xff0c;可能就會報以下錯誤&#xff0c;現在我們來解決這個問題&#xff1a;net start…

XHTML 語法規則及 HTML/XHTML(XHTML 1.0/XHTML 1.1 和 HTML 4.01/HTML 5) 文檔類型說明

文章目錄前言一、XHTML 語法規則二、XHTML、HTML 文檔類型說明三、XHTML 文檔類型3.1、XHTML 1.0 過渡類型&#xff08;Transitional&#xff09;3.2、XHTML 1.0 嚴格類型&#xff08;Strict&#xff09;3.3、XHTML 1.0 框架類型&#xff08;Frameset&#xff09;3.4、XHTML 1.…

Eclipse 答疑:代碼版權?如何更改 Eclipse 中注釋塊的 @author 版權信息?

文章目錄前言一、打開需要進行版權標注的類二、進入配置頁面三、編輯配置信息四、測試總結前言 我們在使用 IDE——Eclipse 進行開發時&#xff0c;在需要注明版權信息的時候&#xff0c;如果不更改默認設置的話&#xff0c;在注釋塊 author 的內容就是電腦系統默認的&#xff…

Java 修飾符詳解:吐血整理,帶你從底層語法和開發案例疏通這 11 種常見修飾符

文章目錄前言一、11 種常見的 Java 修飾符1.1、修飾符應用表1.2、修飾符訪問權限對比二、public 修飾符2.1、public 修飾符語法說明2.2、public 修飾符開發應用三、private 修飾符3.1、private 修飾符語法說明3.2、private 修飾符開發應用四、protected 修飾符4.1、protected 修…

Java 反射機制詳解:私有方法調用頭大?如何通過反射調用類中的私有方法?

文章目錄前言一、私有方法在本類中直接調用1.1、在本類中實例化&#xff0c;調用私有方法1.2、嘗試在其他類直接調用私有方法&#xff08;錯誤示范&#xff09;二、使用反射實例化類強制調用私有方法2.1、使用類加載器加載被調用的類2.2、使用 Object 類對獲取的類進行實例化2.…

jQuery 遍歷:思路總結,項目場景中如何處理/控制獲取的 each 遍歷次數?

文章目錄前言一、項目場景分析二、實體類定義描述&#xff08;僅關鍵代碼&#xff09;2.1、實體類定義描述2.2、邏輯處理與分析2.3、遍歷數據如何修改的問題暴露三、處理思路3.1、源碼分析 jQuery 中的 each 遍歷3.2、如何解決 jQuery 中控制獲取 each 的遍歷次數總結前言 前臺…