国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

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

手機(jī)站
千鋒教育

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

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

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

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

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

常見的運(yùn)算符有哪些?

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

  一. 算數(shù)運(yùn)算符

  概念

  算術(shù)運(yùn)算符與我們?cè)跀?shù)學(xué)中學(xué)習(xí)的計(jì)算符號(hào)一樣,主要用在數(shù)學(xué)表達(dá)式中,常見的算術(shù)運(yùn)算符有:

  / % ++ --

  這幾個(gè)符號(hào)的功能如下表所示:

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

  + 加法 - 相加運(yùn)算符兩側(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 基本運(yùn)算

  public class TypeDemo04 {

常見的運(yùn)算符有哪些1

  }

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

  2.2 除零算術(shù)異常

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

常見的運(yùn)算符有哪些2

  2.3 類型提升(重點(diǎn))

  我們?cè)谶M(jìn)行數(shù)值計(jì)算時(shí),要注意類型提升的問題。當(dāng)算術(shù)表達(dá)式中包含不同的基本類型值時(shí),整個(gè)算術(shù)表達(dá)式的類型會(huì)進(jìn)行自動(dòng)提升。基本的提升規(guī)則為:

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

  提升等級(jí)順序?yàn)椋?/p>

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

  所以由于類型提升的原因,我們?cè)陂_發(fā)時(shí)很少使用byte或者short來(lái)定義整數(shù)。也很少會(huì)使用char類型定

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

  2.4 +號(hào)的兩個(gè)作用

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

  public class TypeDemo04 {

常見的運(yùn)算符有哪些3

  }

  2.5 %的作用

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

  public class TypeDemo04 {

常見的運(yùn)算符有哪些4

  }

  2.6 自增與自減

  對(duì)初學(xué)者來(lái)說(shuō),有兩個(gè)符號(hào)可能會(huì)讓你比較懵圈,一個(gè)是++,一個(gè)是--,這兩個(gè)符號(hào)分別叫做自增和自減運(yùn)算符。++是自增符號(hào),根據(jù)++在變量前或變量后的位置不同,也具有不同的特點(diǎn),--自減符號(hào)同樣如此。++和--具有如下特點(diǎn):

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

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

  ●參與操作時(shí),如果放在變量的后邊,會(huì)先使用變量參與操作,再取變量的值進(jìn)行++或者--;

  ●參與操作時(shí),如果放在變量的前邊,會(huì)先取變量的值進(jìn)行++或者--,后使用變量參與操作;

  ●只有變量才能使用自增/自減運(yùn)算符,常量不能使用自增與自減符號(hào),因?yàn)槌A坎辉试S被修改。

  public class TypeDemo04 {

常見的運(yùn)算符有哪些5

  }

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

      二. 賦值運(yùn)算符

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

常見的運(yùn)算符有哪些6

  案例2.1 賦值案例以下是幾個(gè)賦值運(yùn)算符的基本使用案例。在下面的案例中,大家要注意除法的計(jì)算結(jié)果哦。public class TypeDemo04 {public static void main(String[] args) {//=賦值運(yùn)算符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哦,不會(huì)等于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 擴(kuò)展案例為了讓大家更好地理解賦值運(yùn)算符,壹哥再給大家擴(kuò)展一個(gè)案例。public class TypeDemo04 {

常見的運(yùn)算符有哪些7

  }

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

常見的運(yùn)算符有哪些8

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

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

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

  概念

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

常見的運(yùn)算符有哪些9

  案例

  接下來(lái)我們?cè)偻ㄟ^一些代碼案例,來(lái)學(xué)習(xí)一下關(guān)系運(yùn)算符的用法吧。我們?cè)谑褂帽容^運(yùn)算時(shí),最終都會(huì)得到一個(gè)布爾類型的值。且在進(jìn)行比較運(yùn)算時(shí),一定要注意其優(yōu)先級(jí)。

  public class TypeDemo04 {

  public static void main(String[] args) {

  // 關(guān)系運(yù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));

  }

  }

  四. 邏輯運(yùn)算符

  概念

  Java中的邏輯運(yùn)算符, 主要有3個(gè):邏輯與&&、邏輯或||、邏輯非!,如下所示:

  && || !

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

常見的運(yùn)算符有哪些10

  案例

  接下來(lái)我們通過一個(gè)案例來(lái)演示邏輯運(yùn)算符該如何使用。

  public class TypeDemo04 {

常見的運(yùn)算符有哪些11

  }

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

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

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

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

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

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

  五. 位運(yùn)算符

  概念

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

  & | ^ ~ << >> >>>

常見的運(yùn)算符有哪些12

  注意:& 和 | 既是位運(yùn)算符,也可以進(jìn)行邏輯運(yùn)算。

  2. 案例

  接下來(lái)我們通過一個(gè)案例來(lái)演示位運(yùn)算符該如何使用。

  public class TypeDemo04 {

常見的運(yùn)算符有哪些13

  }

  針對(duì)上述代碼,給大家解釋一下:

  2.1 按位與

  按位與&的特點(diǎn):相同數(shù)位都是1,最終的結(jié)果才是1。基本規(guī)則如下:

  0 & 0 = 0;

  0 & 1 = 0;

  1 & 0 = 0;

  1 & 1 = 1;

常見的運(yùn)算符有哪些14

  2.2 按位或

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

常見的運(yùn)算符有哪些15

  2.3 按位異或

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

常見的運(yùn)算符有哪些16

  2.4 按位取反

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

常見的運(yùn)算符有哪些17

  2.5 左移

  左移<<的特點(diǎn):將二進(jìn)制數(shù)位整體向左移動(dòng)N位,低位補(bǔ)0。

常見的運(yùn)算符有哪些18

  2.6 右移

  右移>>的特點(diǎn):將二進(jìn)制數(shù)位整體向右移動(dòng)N位。如果是正數(shù)補(bǔ)0,負(fù)數(shù)補(bǔ)1。

常見的運(yùn)算符有哪些19

  2.7 無(wú)符號(hào)右移

  無(wú)符號(hào)右移>>>的特點(diǎn):將二進(jìn)制數(shù)位整體向右移動(dòng)N位。高位補(bǔ)0

常見的運(yùn)算符有哪些20

  六. 條件運(yùn)算符

  概念

  條件運(yùn)算符,又叫做三目運(yùn)算符,目前在 Java 中只有一個(gè)三目運(yùn)算符 ? :三目運(yùn)算的語(yǔ)法格式如下:

  布爾表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2

  很多時(shí)候,三目運(yùn)算都是 if 和 else 的簡(jiǎn)寫。

  案例

  public class TypeDemo04 {

  public static void main(String[] args) {

  //條件表達(dá)式,三目運(yùn)算符

  //判斷年齡,如果大于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);

  //三目運(yùn)算符嵌套使用

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

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

  System.out.println(s1);

  }

  }

  三目運(yùn)算符雖然可以嵌套使用,但我們?cè)陂_發(fā)時(shí)盡量不要這么使用,這樣的代碼可讀性很差。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(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ù)類型,它可以用來(lái)表示文本、數(shù)字、符號(hào)等內(nèi)容。在實(shí)際應(yīng)用中,我們經(jīng)常需要對(duì)字符串進(jìn)行截取,以便獲取...詳情>>

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

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

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

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

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

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

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

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

2023-10-31 19:58:15