3 運算符與表達式

運算符:對字面量或者變量進行操作的符號
表達式:用運算符把字面量或者變量連接起來符合java語法的式子就可以稱作表達式

? ? ? ? ? ? ? ? 不同運算符連接的表達式體現的是不同類型的表達式

int a = 10;
int b = 20;
int c = a + b;

? +:運算符,并且是算術運算符

? a+b:是表達式,由于+是算術運算符,所以表達式叫算術表達式

算術運算符

+

-
*????????

/

除 :整數相除,結果只能得到整數,要想得到帶有小數的結果,就需要有小數參與運算

%

取余:作用是用來取余數的,如果操作數都是整數,結果是整數,操作數有一個是小數,結果都是小數

%有什么用?

?????????%目前能想到的場景,可以進行奇數偶數的判斷,任何一個數%2的結果,不是0就是1

public class ArithmeticOperator {public static void main(String[] args) {System.out.println(5/2); // 2 整數相除,結果只能得到整數System.out.println(5/2.0); //2.5 要想得到帶有小數的結果,就需要有小數參與運算System.out.println(5.0/2.0); //2.5 要想得到帶有小數的結果,就需要有小數參與運算System.out.println(5.0/2); //2.5 要想得到帶有小數的結果,就需要有小數參與運算System.out.println("_________________________________________");System.out.println(5%2); //1System.out.println(5%2.0); //1.0System.out.println(5.0%2.0); //1.0System.out.println(5.0%2); //1.0}
}

需求:鍵盤錄入一個三位數,將其拆分為個位,十位,百位,打印在后臺

個位的計算:數值%10123除以10(商12,余數為3)
十位的計算:數值/10%10123除以10(商12,余數為3,整數相除只能等于整數)12除以10(商1,余數為2)
百位的計算:數值/10/10%10123除以10(商12,余數為3,整數相除只能等于整數)12除以10(商1,余數為2)1除以10(商0,余數為1)
千位的計算:數值/10/10/10%10
import java.util.Scanner;
public class ArithmeticOperatorTest {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入一個三位數:");int num = sc.nextInt();int ge = num%10;int shi = num/10%10;int bai = num/10/10%10;System.out.println("個位數:" + ge);System.out.println("十位數:" + shi);System.out.println("百位數:" + bai);}
}

自增自減運算符

????????++ :讓變量自身的值+1

?????????-- :讓變量自身的值-1

????????只能操作變量

????????使用方式有兩種
1.單獨使用? 一句代碼中,只做++ 或者 --,單獨使用時,++ 或者 -- 在變量的前面還是后面沒有區別
2.參加運算
如果放在變量的前面,先對變量進行+1或者-1,再拿變量的值進行運算,當++ 或者--,在前面時,先運算再賦值
如果放在變量的后面,先拿變量的值進行運算,再對變量的值進行 +1或者-1,當++或者--,在后面是,先賦值在運算

public class AutodecrementOperator {public static void main(String[] args) {int x = 10;int y = x++; // y = 10;x=11int z = ++y;//  y =11;z=11System.out.println("x的值:" + x);System.out.println("y的值: " + y);System.out.println("z的值:" + z);System.out.println("______________________________");int a = 3;//        4       4      5*10int b = (++a) + (a++) +(a*10);System.out.println("a的值" + a);//5System.out.println("b的值" + b);//58}
}

字符串的拼接

?????+ 當加號操作當中,遇到了字符串,這時+號就是字符串連接符,而不是算術運算符

賦值運算符

? ? ?

????????賦值運算符是編程中用于給變量賦值的操作符,主要包括以下幾種:

  1. =:基本賦值運算符
    將右邊的值賦給左邊的變量
    示例:a = 10; 表示將整數值10賦值給變量a

  2. +=:加法賦值運算符
    執行步驟:

    • 先計算左邊變量和右邊值的和
    • 然后將結果賦給左邊的變量
      等價于:a = a + b
      示例:a += 5; 相當于 a = a + 5;
  3. -=:減法賦值運算符
    執行步驟:

    • 先計算左邊變量減去右邊值的差
    • 然后將結果賦給左邊的變量
      等價于:a = a - b
      示例:balance -= withdrawal; 可用于銀行賬戶扣款場景
  4. *=:乘法賦值運算符
    執行步驟:

    • 先計算左邊變量和右邊值的乘積
    • 然后將結果賦給左邊的變量
      等價于:a = a * b
      示例:price *= 1.1; 可用于價格上調10%的計算
  5. /=:除法賦值運算符
    執行步驟:

    • 先計算左邊變量除以右邊值的商
    • 然后將結果賦給左邊的變量
      等價于:a = a / b
      示例:average /= count; 常用于計算平均值
  6. %=:取模賦值運算符
    執行步驟:

    • 先計算左邊變量除以右邊值的余數
    • 然后將結果賦給左邊的變量
      等價于:a = a % b
      示例:seconds %= 60; 可用于將總秒數轉換為分鐘和秒數

應用場景:

  • 游戲開發中角色屬性的實時更新
  • 金融計算中的累計利息計算
  • 科學計算中的迭代運算
  • 數據處理中的聚合統計

注意事項:

  1. 運算符左右兩邊需要有明確的值或變量
  2. 除法和取模運算時右邊值不能為0
  3. 復合賦值運算符比簡單賦值運算符執行效率更高

關系運算符

關系運算符是編程中用于比較兩個值的基本運算符,這些運算符的運算結果都是布爾類型(boolean),即只能返回true或false。以下是各種關系運算符的詳細說明:

  1. 相等運算符(==): 用于判斷兩個操作數的值是否相等。例如:

    • 5 == 5 返回true
    • 3 == 5 返回false
    • "hello" == "hello" 返回true 注意:在比較字符串時,實際上是比較字符串的內容而非對象引用
  2. 不等運算符(!=): 用于判斷兩個操作數的值是否不相等。例如:

    • 5 != 3 返回true
    • 5 != 5 返回false
    • "abc" != "def" 返回true
  3. 大于運算符(>): 用于判斷左操作數是否大于右操作數。例如:

    • 10 > 5 返回true
    • 5 > 10 返回false
    • 5 > 5 返回false
  4. 大于等于運算符(>=): 用于判斷左操作數是否大于或等于右操作數。例如:

    • 10 >= 5 返回true
    • 5 >= 10 返回false
    • 5 >= 5 返回true
  5. 小于運算符(<): 用于判斷左操作數是否小于右操作數。例如:

    • 3 < 5 返回true
    • 5 < 3 返回false
    • 5 < 5 返回false
  6. 小于等于運算符(<=): 用于判斷左操作數是否小于或等于右操作數。例如:

    • 3 <= 5 返回true
    • 5 <= 3 返回false
    • 5 <= 5 返回true

?邏輯運算符

在Java編程中,邏輯運算符是用于連接布爾類型的表達式或值的重要工具。它們可以將多個條件組合成一個整體邏輯表達式,從而構建更復雜的判斷條件。以下是Java中主要的邏輯運算符及其詳細說明:

  1. 邏輯與(&)

    • 表示"并且"的關系
    • 運算規則:遇false則false
    • 特點:沒有短路效果,無論左邊表達式的結果是true還是false,右邊表達式都會執行
    • 示例:(a > 5) & (b < 10)?只有當a大于5且b小于10時,整個表達式才為true
  2. 邏輯或(|)

    • 表示"或者"的關系
    • 運算規則:遇true則true
    • 特點:沒有短路效果,無論左邊表達式的結果是true還是false,右邊表達式都會執行
    • 示例:(x == 0) | (y == 0)?只要x等于0或者y等于0,整個表達式就為true
  3. 邏輯非(!)

    • 表示"取反"操作
    • 一元運算符,只需要一個操作數
    • 示例:!(age < 18)?等同于判斷age是否大于等于18
  4. 邏輯異或(^)

    • 表示"相同為false,不同為true"
    • 當兩個操作數相同時返回false,不同時返回true
    • 示例:(a > b) ^ (c > d)?當兩個比較結果相同時返回false,不同時返回true
  5. 短路與(&&)

    • 表示"并且"的關系
    • 具有短路效果:當左邊表達式為false時,右邊表達式不會執行
    • 效率更高,是實際開發中最常用的與運算
    • 示例:(user != null) && (user.getName().equals("Admin"))?可以避免NullPointerException
  6. 短路或(||)

    • 表示"或者"的關系
    • 具有短路效果:當左邊表達式為true時,右邊表達式不會執行
    • 效率更高,是實際開發中最常用的或運算
    • 示例:(score >= 90) || (specialTalent == true)?如果分數已經大于等于90,就不會檢查特殊才能

在實際編程中,短路運算符(&&和||)比非短路運算符(&和|)更常用,因為它們可以提高程序效率并避免不必要的計算。特別是在可能引發異常的判斷中(如檢查對象是否為null后再調用其方法),使用短路運算符可以避免程序崩潰。

三元運算符(三目運算符 )

基本語法格式

判斷條件 ? 值1 : 值2;

執行流程說明

  1. 條件評估階段

    • 首先計算判斷條件的值
    • 這個條件可以是任何能返回布爾值的表達式(如比較運算、邏輯運算等)
  2. 結果選擇階段

    • 如果條件評估結果為true
      • 整個表達式將返回值1
      • 值2部分不會被執行
    • 如果條件評估結果為false
      • 整個表達式將返回值2
      • 值1部分不會被執行

實際應用示例

// 簡單示例
let age = 20;
let status = (age >= 18) ? "成年人" : "未成年人";// 嵌套使用示例
let score = 85;
let grade = (score >= 90) ? "A" : (score >= 80) ? "B" : (score >= 70) ? "C" : "D";

注意事項

  • 該運算符是JavaScript中唯一需要三個操作數的運算符
  • 表達式中的值1值2可以是任意類型的值或表達式
  • 雖然可以嵌套使用,但過度嵌套會降低代碼可讀性

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

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

相關文章

MySQL的單行函數:

目錄 函數的理解&#xff1a; MySQL的內置函數及分類&#xff1a; 單行函數&#xff1a; 數值函數&#xff1a; 基本函數&#xff1a; 角度與弧度互換函數&#xff1a; 三角函數&#xff1a; 指數與對數&#xff1a; 進制轉換&#xff1a; 字符串函數&#xff1a; 日…

設計模式(二十一)行為型:狀態模式詳解

設計模式&#xff08;二十一&#xff09;行為型&#xff1a;狀態模式詳解狀態模式&#xff08;State Pattern&#xff09;是 GoF 23 種設計模式中的行為型模式之一&#xff0c;其核心價值在于允許一個對象在其內部狀態改變時改變其行為&#xff0c;使得對象看起來像是修改了它的…

深入理解 Doris Compaction:提升查詢性能的幕后功臣

在 Doris 的數據存儲與查詢體系里&#xff0c;Compaction 是保障查詢效率、優化存儲結構的關鍵機制。如果你好奇 Doris 如何在高頻寫入后仍能高效響應查詢&#xff0c;或是想解決數據版本膨脹帶來的性能問題&#xff0c;這篇關于 Compaction 的深度解析值得收藏 &#x1f447; …

css 實現虛線效果的多種方式

使用邊框實現虛線 通過設置元素的邊框樣式來實現虛線效果。以下為示例代碼: .dashed {border: 1px dashed black; }使用 CSS 偽元素實現虛線 使用偽元素來模擬虛線的效果。以下為示例代碼: .dashed::before {content: "";display: block;height: 1px;border-bo…

深入剖析 RocketMQ 分布式事務:原理、流程與實踐

Apache RocketMQ 是一種分布式消息隊列系統&#xff0c;支持分布式事務消息&#xff0c;以確保在分布式系統中數據的一致性。它通過一種基于兩階段提交(2PC)的機制結合補償邏輯來實現分布式事務的最終一致性。以下是對 RocketMQ 分布式事務的詳細講解&#xff0c;包括其核心概念…

具身智能 自動駕駛相關崗位的技術棧與能力地圖

一、硬技能技術棧&#xff08;優先級排序&#xff09; 1. 核心領域技術&#xff08;★★★★★&#xff09;技術方向具體技能學習建議大模型實戰- VLA架構&#xff08;RT-2、PaLM-E&#xff09;開發/微調- 多模態對齊&#xff08;CLIP、Flamingo&#xff09;- 生成式策略&#…

實現了加載 正向 碰撞 雅可比 仿真

""" # 此示例從 URDF 文件中加載一個 UR10 機械臂的模型 # 隨后演示 Pinocchio 庫的基本功能,如正向運動學計算 # 雅可比矩陣計算、碰撞檢測以及動力學仿真 """ # 導入 meshcat 的幾何模塊,用于創建和管理可視化的幾何對象 import meshcat.geo…

【0基礎PS】PS工具詳解--畫筆工具

目錄前言一、畫筆工具的位置與快捷鍵?二、畫筆工具選項欄設置?三、畫筆工具的進階應用?四、常見問題及解決方法?總結前言 在 Photoshop 的眾多工具中&#xff0c;畫筆工具無疑是極具創造力和實用性的工具之一。無論是進行圖像繪制、照片修飾&#xff0c;還是特效制作&…

window10和ubuntu22.04雙系統之卸載ubuntu系統

window10和ubuntu22.04雙系統之卸載ubuntu系統&#xff09;1. 刪除Ubuntu系統占用的磁盤分區&#xff08;在Windows下操作&#xff09;2. 刪除ubuntu開機引導項1. winr出來終端提示框后輸入2. 然后會在命令行中顯示電腦的硬盤列表&#xff0c;輸入命令選擇安裝Windows的那個硬盤…

(C++)C++類和類的方法(基礎教程)(與Python類的區別)

前言&#xff1a; 本篇博客建議搭配&#xff1a;&#xff08;Python&#xff09;類和類的方法&#xff08;基礎教程介紹&#xff09;&#xff08;Python基礎教程&#xff09;-CSDN博客 一起學習使用&#xff1b; 源代碼&#xff1a; #include <iostream> #include &…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 微博文章數據可視化分析-文章分類下拉框實現

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程&#xff0c;持續更新中&#xff0c;計劃月底更新完&#xff0c;感謝支持。今天講解微博文章數據可視化分析-文章分類下拉框實現…

Git命令保姆級教程

Git 入門網站 https://learngitbranching.js.org/?localezh_CN Git 命令 git init // 在本地目錄內部會生成.git文件夾 git initgit clone // 從git服務器拉取代碼 // 代碼下載完成后在當前文件夾中會有一個 shop 的目錄&#xff0c;通過 cd shop 命令進入目錄。 git clone ht…

Java Ai For循環 (day07)

循環結構 for&#xff1a;循環語句的作用&#xff1a;可以將一段代碼重復的執行很多次for 循環語句格式&#xff1a;執行流程&#xff1a; 初始化語句執行條件判斷語句&#xff0c;看結果是 true&#xff0c;還是 false false結束&#xff0c;true繼續執行循環體語句執行條件控…

Directory Opus 使用優化

自定義快捷鍵 Directory Opus 移動標簽到另一欄 設置快捷鍵&#xff1a;ctrl←/→ 設置步驟&#xff1a; 打開【設置】—>選擇【自定義工具欄和快捷鍵】 選擇【新建】—>【新建窗口快捷鍵】 輸入快捷鍵命令 Go TABMOVEother此時可以點擊運行進行測試&#xff0c;…

Qt知識點2『Ubuntu24.04.2安裝Qt5.12.9各種報錯』

問題1&#xff1a;Qt安裝完畢后&#xff0c;新建一個最簡單的測試程序&#xff0c;但是QtCreator左側構建的三個按鈕呈現灰色&#xff0c;無法進行構建操作答&#xff1a;進入QtCreator的Kits界面&#xff08;工具-選項&#xff09;&#xff0c;點擊"自動檢測"下的De…

TS面試題

1.TS有哪些類型&#xff08;對比與js&#xff09;&#xff1f;關鍵字/語法用途示例any關閉類型檢查let a: any 4unknown類型安全的 anylet u: unknown 4; if (typeof u number) …never永不存在的值function err(): never { throw 0; }void無返回值function f(): void {}enu…

借助Early Hints和HarperDB改善網頁性能

對電商網站來說&#xff0c;糟糕的頁面性能可能會增加交易放棄率。一直以來&#xff0c;人們會使用CDN進行緩存從而縮短頁面加載時間&#xff0c;但即便實施了強大的緩存&#xff0c;消費者在通過移動網絡訪問這些網站時可能仍然會需要頻繁等待。最近誕生了一種名為“早期提示”…

MEMS陀螺如何成為無人機穩定飛行的核心?

在無人機自主翱翔、靈活機動并適應多變環境的背后&#xff0c;對其運動狀態——尤其是姿態——的精確感知是基石。作為飛行控制系統&#xff08;飛控&#xff09;的“內耳”&#xff0c;陀螺儀實時捕捉機體繞X、Y、Z三軸的旋轉角速度。這一核心數據是飛控進行姿態解算和維持飛行…

騰訊云拉取docker鏡像失敗怎么辦

ps:我直接按照步驟1和2就解決了 以下內容來自豆包 在騰訊云服務器上拉取 Docker 鏡像失敗&#xff0c;可以按照以下步驟排查和解決&#xff1a; 一、檢查網絡連接 確認服務器網絡正常 bash ping www.baidu.com # 測試公網連通性如果無法 ping 通&#xff0c;檢查服務器防火墻…

Apache FOP實踐——pdf模板引擎

文章目錄 基本概念設計思想具體實踐完整應用 基本概念 Apache FOP&#xff08;Formatting Objects Processor&#xff09;是一個基于Java的開源工具&#xff0c;用于將 XSL-FO&#xff08;XSL Formatting Objects&#xff09; 文檔轉換為PDF、圖像等格式。 設計思想 將內容&…