久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 常見的運算符有哪些?

常見的運算符有哪些?

來源:千鋒教育
發(fā)布人:wjy
時間: 2023-03-21 10:21:00 1679365260

  一. 算數(shù)運算符

  概念

  算術(shù)運算符與我們在數(shù)學(xué)中學(xué)習(xí)的計算符號一樣,主要用在數(shù)學(xué)表達式中,常見的算術(shù)運算符有:

  / % ++ --

  這幾個符號的功能如下表所示:

  操作符 描述 案例(A=5,B=10)

  + 加法 - 相加運算符兩側(cè)的值;字符串拼接 A + B = 15

  - 減法 - 左操作數(shù)減去右操作數(shù) A – B = -5

  * 乘法 - 相乘操作符兩側(cè)的值 A * B = 50

  / 除法 - 左操作數(shù)除以右操作數(shù) B / A = 2

  % 取余 - 左操作數(shù)除以右操作數(shù)的余數(shù) B % A = 0

  ++ 自增: 操作數(shù)的值增加1 B++ 或 ++B = 11(區(qū)別見下文)

  -- 自減: 操作數(shù)的值減少1 B-- 或 --B = 9(區(qū)別

  見下文)

  2. 案例

  2.1 基本運算

  public class TypeDemo04 {

常見的運算符有哪些1

  }

  我們要特別注意,整數(shù)由于存在范圍的限制,如果計算結(jié)果超出了范圍,就會產(chǎn)生溢出。而溢出不會出錯,但會得到一個奇怪的結(jié)果。

  2.2 除零算術(shù)異常

  另外壹哥還要提醒大家一下,在Java中的除法和取模運算,和數(shù)學(xué)中的要求一樣,是不能做除零操作的,否則在運行時會產(chǎn)生異常哦!這里會產(chǎn)生java.lang.ArithmeticException: / by zero的異常。

常見的運算符有哪些2

  2.3 類型提升(重點)

  我們在進行數(shù)值計算時,要注意類型提升的問題。當(dāng)算術(shù)表達式中包含不同的基本類型值時,整個算術(shù)表達式的類型會進行自動提升。基本的提升規(guī)則為:

  為了計算方便,Java會將小于4個字節(jié)的類型,在計算時將其隱形提升到int類型。所以byte類型、short類型和char類型會被提升為int類型,不管是否有其他類型參與運算。也就是說,整個表達式的類型會自動提升到與表達式中最高等級的操作數(shù)相同的類型。所以兩個數(shù)值進行計算,結(jié)果取決于范圍更大的那個數(shù)!比如兩個int計算,結(jié)果是int。而int與浮點數(shù)進行計算,則結(jié)果為浮點數(shù),即結(jié)果變成更大范圍的類型,這就是類型提升!

  提升等級順序為:

  byte、short、char --> int --> long --> float --> double

  所以由于類型提升的原因,我們在開發(fā)時很少使用byte或者short來定義整數(shù)。也很少會使用char類型定

  義字符,而是使用字符串類型,更不會使用char類型做算術(shù)運算。

  2.4 +號的兩個作用

  Java中的+號有2個功能,一是可以進行加法操作,二是可以進行字符串拼接。尤其是在進行字符串拼接時,要考慮自左向右的結(jié)合性。當(dāng)字符串在前,數(shù)字在后,執(zhí)行字符串拼接操作;當(dāng)數(shù)字在前,字符串字后,先計算出結(jié)果,再進行字符串的拼接。

  public class TypeDemo04 {

常見的運算符有哪些3

  }

  2.5 %的作用

  %是取余符號,我們可以進行取余運算,也叫做取模運算。另外%在Java中不但可以對整數(shù)進行取模,還可以對double進行取模操作。

  public class TypeDemo04 {

常見的運算符有哪些4

  }

  2.6 自增與自減

  對初學(xué)者來說,有兩個符號可能會讓你比較懵圈,一個是++,一個是--,這兩個符號分別叫做自增和自減運算符。++是自增符號,根據(jù)++在變量前或變量后的位置不同,也具有不同的特點,--自減符號同樣如此。++和--具有如下特點:

  ●++和-- 既可以放在變量的后邊,也可以放在變量的前邊;

  ●單獨使用時, ++和-- 無論是放在變量的前邊還是后邊,結(jié)果都是一樣的;

  ●參與操作時,如果放在變量的后邊,會先使用變量參與操作,再取變量的值進行++或者--;

  ●參與操作時,如果放在變量的前邊,會先取變量的值進行++或者--,后使用變量參與操作;

  ●只有變量才能使用自增/自減運算符,常量不能使用自增與自減符號,因為常量不允許被修改。

  public class TypeDemo04 {

常見的運算符有哪些5

  }

  【++變量】變量先+1,然后使用變量+1之后的值;【變量++】先使用變量原來的值,表達式結(jié)束時給變量+1。所在在本案例中,如果++在變量之后,比如d++,具有“先使用,再自增”的特點。如果++在變量之前,比如++d,具有“先自增,再使用”的特點。--自減符號也是如此。壹哥不建議初學(xué)者把++運算混入到常規(guī)運算中,容易把你給搞懵逼哦。

      二. 賦值運算符

  概念在Java中,“=”是賦值運算符,而不是我們通常認(rèn)知中的“等號”。賦值運算符用于將“=”右側(cè)表達式的結(jié)果,賦值給“=”左側(cè)的變量。另外,除了“=”這個賦值符號之外,還有另外幾個擴展的賦值符號,所以目前常用的賦值符號有如下幾個:= += -= *= /= %=

常見的運算符有哪些6

  案例2.1 賦值案例以下是幾個賦值運算符的基本使用案例。在下面的案例中,大家要注意除法的計算結(jié)果哦。public class TypeDemo04 {public static void main(String[] args) {//=賦值運算符int a = 10;a += 2; //12,相當(dāng)于 a=a+2;System.out.println("a="+a);a -= 3; //9,a = a - 3;System.out.println("a="+a);a *= 4; //36,a = a * 4;System.out.println("a="+a);//注意:Java中的除法,36/5=7哦,不會等于7.2,想想這是為什么?a /= 5; //7,a = a / 5;System.out.println("a="+a);a %= 6; //1,a = a % 6;System.out.println("a="+a);}}2.2 擴展案例為了讓大家更好地理解賦值運算符,壹哥再給大家擴展一個案例。public class TypeDemo04 {

常見的運算符有哪些7

  }

  在這個案例中,我們一定要注意類型提升的問題。兩個short變量s1和s2,s1+s2時會進行類型提升變成int,所以必須對結(jié)果進行強制類型轉(zhuǎn)換才行,如下圖所示:

常見的運算符有哪些8

  但是當(dāng)我們使用s2+=s1語句時,雖然計算結(jié)果與s2=s1+s2是相同的,但內(nèi)部的執(zhí)行原理卻不同,這是因為擴展的賦值運算符都隱含了強制類型轉(zhuǎn)換。s2 = s1 + s2;此行代碼會報錯,這是因為運算中s變量會提升為int類型,運算結(jié)果int賦值給short可能會損失精度。

  而在s2+=s1語句中就沒有問題,因為這里隱含了強制類型轉(zhuǎn)換,相當(dāng)于s2 = (short) (s2 + s1);不用進行再額外強制類型轉(zhuǎn)換,這一點我們一定要注意!

  三. 關(guān)系運算符

  概念

  在Java中,關(guān)系運算符,又叫做比較運算符, 或者叫做布爾運算符,主要是用于比較兩個表達式的結(jié)果。常用的賦值符號有如下幾個:

常見的運算符有哪些9

  案例

  接下來我們再通過一些代碼案例,來學(xué)習(xí)一下關(guān)系運算符的用法吧。我們在使用比較運算時,最終都會得到一個布爾類型的值。且在進行比較運算時,一定要注意其優(yōu)先級。

  public class TypeDemo04 {

  public static void main(String[] args) {

  // 關(guān)系運算符

  int a = 10;

  int b = 20;

  System.out.println(a > b);

  System.out.println(a >= b);

  System.out.println(a < b);

  System.out.println(a <= b);

  System.out.println(a == b);

  System.out.println(a != b);

  // 判斷奇數(shù)與偶數(shù)

  // 偶數(shù)條件: a % 2 == 0

  // 奇數(shù)條件: a % 2 != 0

  System.out.println("a != b " + (a != b));

  System.out.println("a % 2 != 0 " + (a % 2 != 0));

  }

  }

  四. 邏輯運算符

  概念

  Java中的邏輯運算符, 主要有3個:邏輯與&&、邏輯或||、邏輯非!,如下所示:

  && || !

  Java中的邏輯運算符,其實和數(shù)學(xué)中的與、或、非意思一致。 邏輯運算符大多數(shù)會和其他的運算符一起使用,主要做一些簡單或復(fù)雜的邏輯運算。且通常都會和 if、for等邏輯表達式一起使用,使用格式為:表達式1 邏輯運算符 表達式2

常見的運算符有哪些10

  案例

  接下來我們通過一個案例來演示邏輯運算符該如何使用。

  public class TypeDemo04 {

常見的運算符有哪些11

  }

  對于上述代碼中的邏輯運算符,壹哥再給大家細(xì)說一下,我們要特別注意“短路與”和“短路或”的概念:

  ●&&:邏輯與(短路與)。所有的結(jié)果為true,最終的結(jié)果才是true。&&屬于短路與:邏輯與遵守短路求值的規(guī)則,即表達式1為假,表達式2就不再執(zhí)行。即如果左邊的表達式為真,右邊的表達式就會執(zhí)行;如果左邊為假,右邊不執(zhí)行。

  ●||:邏輯或(短路或)。所有的結(jié)果只要有一個為true,最終結(jié)果就是true。||屬于短路或:遵守或也遵守短路求值的規(guī)則,即表達式1為真,表達式2就不在執(zhí)行,否則就執(zhí)行表達式2。

  ●!: 邏輯非。對結(jié)果進行取反。

  ●&:按位與。無論條件表達式的結(jié)果如何,都會執(zhí)行完整個表達式,所在無論左邊的表達式是真假,右邊的表達式都要執(zhí)行。

  ●|:按位或。無論條件表達式的結(jié)果如何,都會執(zhí)行完整個表達式。無論左邊的表達式是真假,右邊的表達式都要執(zhí)行。

  五. 位運算符

  概念

  我們知道,對任何編程語言而言,最終的操作都是用二進制表示,因為計算機的底層只認(rèn)識二進制。而八進制、十進制或者十六進制,都是為了讓開發(fā)人員方便開發(fā)而創(chuàng)立的。在Java中,也可以根據(jù)數(shù)的進制進行運算,這就需要位運算符的參與了。常用的位運算符有如下幾個:

  & | ^ ~ << >> >>>

常見的運算符有哪些12

  注意:& 和 | 既是位運算符,也可以進行邏輯運算。

  2. 案例

  接下來我們通過一個案例來演示位運算符該如何使用。

  public class TypeDemo04 {

常見的運算符有哪些13

  }

  針對上述代碼,給大家解釋一下:

  2.1 按位與

  按位與&的特點:相同數(shù)位都是1,最終的結(jié)果才是1?;疽?guī)則如下:

  0 & 0 = 0;

  0 & 1 = 0;

  1 & 0 = 0;

  1 & 1 = 1;

常見的運算符有哪些14

  2.2 按位或

  按位或|的特點:只要相同數(shù)位上有1,結(jié)果就是1。

常見的運算符有哪些15

  2.3 按位異或

  按位亦或的特點:相同數(shù)位相同為0,不同為1。

常見的運算符有哪些16

  2.4 按位取反

  按位取反的特點:將每一位上的數(shù)字取反。結(jié)論:數(shù)字+1取反。

常見的運算符有哪些17

  2.5 左移

  左移<<的特點:將二進制數(shù)位整體向左移動N位,低位補0。

常見的運算符有哪些18

  2.6 右移

  右移>>的特點:將二進制數(shù)位整體向右移動N位。如果是正數(shù)補0,負(fù)數(shù)補1。

常見的運算符有哪些19

  2.7 無符號右移

  無符號右移>>>的特點:將二進制數(shù)位整體向右移動N位。高位補0

常見的運算符有哪些20

  六. 條件運算符

  概念

  條件運算符,又叫做三目運算符,目前在 Java 中只有一個三目運算符 ? :三目運算的語法格式如下:

  布爾表達式 ? 表達式1 : 表達式2

  很多時候,三目運算都是 if 和 else 的簡寫。

  案例

  public class TypeDemo04 {

  public static void main(String[] args) {

  //條件表達式,三目運算符

  //判斷年齡,如果大于18歲,輸出成年人,否則輸出未成年人

  int age = 70;

  String s = age > 18 ? "成年人" : "未成年人";

  System.out.println(s);

  //a和b比較,輸出較大的數(shù)字

  int a = 10;

  int b = 20;

  int num = a > b ? a : b;

  System.out.println(num);

  //三目運算符嵌套使用

  //判斷年齡。如果大于18歲,輸出成年人;但如果大于60歲,輸出老年人,否則輸出未成年人

  String s1 = age > 18 ? age > 60 ? "老年人" : "成年人" : "未成年人";

  System.out.println(s1);

  }

  }

  三目運算符雖然可以嵌套使用,但我們在開發(fā)時盡量不要這么使用,這樣的代碼可讀性很差。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python字符串截???

在Python中,字符串是一種非常常見的數(shù)據(jù)類型,它可以用來表示文本、數(shù)字、符號等內(nèi)容。在實際應(yīng)用中,我們經(jīng)常需要對字符串進行截取,以便獲取...詳情>>

2023-11-02 17:56:27
Python socket C/S結(jié)構(gòu)的聊天室應(yīng)用實現(xiàn)?

隨著互聯(lián)網(wǎng)的發(fā)展,聊天室應(yīng)用成為人們?nèi)粘I钪惺殖R姷囊环N社交方式。Python語言的Socket模塊是實現(xiàn)網(wǎng)絡(luò)通信的重要工具,可以輕松地實現(xiàn)C/...詳情>>

2023-11-02 17:53:38
用while求1到100的奇數(shù)和?

在計算機編程中,循環(huán)語句是非常重要的一部分。而while語句是其中最基本也是最常用的一種。它的作用是在滿足一定條件的情況下,重復(fù)執(zhí)行一段代...詳情>>

2023-11-02 17:50:57
python創(chuàng)建一個集合?

在Python中,集合是一種無序且不重復(fù)的數(shù)據(jù)類型,可以用于存儲一組元素。創(chuàng)建一個集合非常簡單,只需要使用大括號{}或者set()函數(shù)即可。使用大...詳情>>

2023-11-02 17:34:02
linux改文件屬主命令?

Linux文件相關(guān)命令1、命令一:cat cat命令應(yīng)該是在Linux中查看文件內(nèi)容最常見的命令了。使用cat命令會打印指定文件的所有內(nèi)容到標(biāo)準(zhǔn)輸出上,比...詳情>>

2023-10-31 19:58:15