Java?六類(lèi)運(yùn)算符詳解
在 Java 語(yǔ)言中,運(yùn)算符有算數(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、字符串連接運(yùn)算符、條件運(yùn)算符。
算數(shù)運(yùn)算符
算數(shù)運(yùn)算符是我們最常用的運(yùn)算符,用于完成基本的算術(shù)運(yùn)算。共包含以下幾種,其中加減乘除不必多說(shuō),這里重點(diǎn)介紹后面幾種。
算數(shù)運(yùn)算符 | 表示 |
---|---|
加 | + |
減 | - |
乘 | * |
除 | / |
取余 | % |
自增 | ++ |
自減 | -- |
% 在 Java 中意為取模/取余,一個(gè)數(shù)取余另一個(gè)數(shù),就意味著兩數(shù)先做除法運(yùn)算,然后將余數(shù)作為結(jié)果。如果余數(shù)為 0,那么這就是整除。
public static void main(String[] args) { System.out.println(3%2); //3取余2,商1余1 System.out.println(8%2); //8取余2,商4余0,整除 System.out.println(2%8); //2取余8,商0余2 }
Java 中小數(shù)也是可以取余的,但我們?cè)趯?shí)際應(yīng)用當(dāng)中僅需掌握整數(shù)間的取余即可。
++ 和 -- 分別為自增、自減 1,可以使用在變量之前,也可以使用在變量之后。這里需要注意自增自減運(yùn)算符在單獨(dú)使用和被使用時(shí)的計(jì)算方法是不同的。
單獨(dú)使用就是整個(gè)語(yǔ)句只有變量和自增自減運(yùn)算符。
被使用是指該語(yǔ)句除了自增自減還包含著其他的任何操作。
① 單獨(dú)使用時(shí)。自增自減在變量的前或后效果都相同;
public static void main(String[] args) { int a=5,b=5; //單獨(dú)使用 a++; //相當(dāng)于a=a+1 ++b; //相當(dāng)于b=b+1 System.out.println(a); //6 System.out.println(b); //6 }
② 被使用時(shí)。運(yùn)算符在前,先將該變量自增/自減后再使用(使用的是經(jīng)過(guò)運(yùn)算后的變量);運(yùn)算符在后,先使用完該變量,然后再將該變量進(jìn)行自增/自減操作(使用的是未經(jīng)運(yùn)算的變量,即初始狀態(tài)的變量)。如下以自增作為案例,自減原理相同:
- ++a的值為a+1 運(yùn)算符在前,先將變量 a 自增,然后使用自增后的結(jié)果 a+1 進(jìn)行操作。
- a++的值為a 運(yùn)算符在后,先使用變量 a 進(jìn)行操作,使用完之后再對(duì) a 進(jìn)行自增。
public static void main(String[] args) { int a=5,b=5; //被使用 int c=a++; //運(yùn)算符在后,先使用a的值賦給c,然后a再自增 int d=++b; //運(yùn)算符在前,先將b自增,然后將結(jié)果b+1賦值給d System.out.println(a); //6(到這步時(shí)a、b均已經(jīng)完成了自增操作) System.out.println(b); //6 System.out.println(c); //5 System.out.println(d); //6 }
關(guān)系運(yùn)算符
關(guān)系運(yùn)算符主要是用來(lái)比較兩者大小關(guān)系的。包含以下幾種:
關(guān)系運(yùn)算符 | 表示 |
---|---|
大于 | > |
小于 | < |
大于 或 等于 | >= |
小于 或 等于 | <= |
等于 | == |
不等于 | != |
關(guān)系運(yùn)算符的運(yùn)算結(jié)果必定只有布爾值,即成立 true 或 不成立 false。
public static void main(String[] args) { int a=5,b=10,c=5; System.out.println(c<b); //true System.out.println(b<c); //false System.out.println(a>=c); //true System.out.println(a!=c); //false }
在 Java 語(yǔ)法的運(yùn)算中,當(dāng)不同運(yùn)算符結(jié)合使用時(shí),優(yōu)先順序也是不同的。算數(shù)運(yùn)算符和關(guān)系運(yùn)算符結(jié)合,采取“先算數(shù)再關(guān)系”的優(yōu)先級(jí)。
public static void main(String[] args) { int a=5,b=10,c=5; System.out.println(a+c>20); //false,先計(jì)算a+c值為10,然后比較與20的關(guān)系 System.out.println(a%2==0); //false,先計(jì)算a%2值為1,然后比較與0的關(guān)系 System.out.println(a++>5); //false,先使用a對(duì)5進(jìn)行比較,然后a自增1 System.out.println(++a>5); //true,先將a自增1,然后比較與5的關(guān)系 }
邏輯運(yùn)算符
邏輯運(yùn)算符用于把語(yǔ)句連接成更復(fù)雜的復(fù)雜語(yǔ)句,共包含三種:
邏輯運(yùn)算符 | 表示 |
---|---|
邏輯與 | && |
邏輯或 | ‖ |
邏輯非 | ! |
邏輯運(yùn)算是建立在關(guān)系運(yùn)算基礎(chǔ)之上的,所以它的運(yùn)算結(jié)果也只有布爾值 true 或 false。
邏輯與 && 用于表達(dá)多個(gè)條件之間的并且關(guān)系,各個(gè)條件缺一不可,必須同時(shí)滿(mǎn)足,所有條件均為真(true)整體才為真,只要有其中一個(gè)條件為假(false)則整體為假。
邏輯或 ‖ 用于表達(dá)多個(gè)條件之間的或者關(guān)系,無(wú)需同時(shí)滿(mǎn)足,只要有其中一個(gè)條件為真則整體為真,只有當(dāng)所有條件均為假時(shí)整體才為假。
邏輯非 ! 意為取反,非真則假,非假則真。
public static void main(String[] args) { int a=5,b=10,c=5; System.out.println(b>=a && b<c); //b>=a為true,b<c為false,true&&false=false System.out.println(b>=a && b>c); //b>=a為true,b>c為true,true&&true=true System.out.println(b>=a || b<c); //b>=a為true,b<c為false,true||false=true System.out.println(b<a || b<c); //b<a為false,b<c為false,false||false=false System.out.println(!(a>b)); //a>b為false,非false得true System.out.println(!(a<=c)); //a<=c為true,非true得false }
此外,邏輯與也稱(chēng)“短路與”,邏輯或也稱(chēng)“短路或”。短路是指在一條線(xiàn)路中的某個(gè)位置發(fā)生短路,則整個(gè)線(xiàn)路都會(huì)停止運(yùn)行。將這個(gè)機(jī)制映射到邏輯與和邏輯或中也很明確:邏輯與,眾多條件中從第一個(gè)條件開(kāi)始只要看到有一個(gè)條件為 false,那么也就不用再往后看了,可確定它的整體已是 false,且 該條件之后的語(yǔ)句不會(huì)再被執(zhí)行。邏輯或,眾多條件中從第一個(gè)條件開(kāi)始只要看到有一個(gè)條件為 true,則整體為 true,且 該條件之后的語(yǔ)句不會(huì)再被執(zhí)行。這就是“短路與”、“短路或”名稱(chēng)的由來(lái)。
如下面的語(yǔ)句,三個(gè)條件進(jìn)行邏輯與運(yùn)算,當(dāng)我們看到第一個(gè)條件 a>b 為 false 時(shí),可以直接確定整個(gè)語(yǔ)句為 false,那么該條件之后的 c>3 和 b++>a 都不會(huì)再被執(zhí)行運(yùn)算,因此 b 在該語(yǔ)句也是不會(huì)自增的。邏輯或同理。
public static void main(String[] args) { int a=5,b=10,c=5; System.out.println(a>b && c>3 && b++>a); //false }
賦值運(yùn)算符
賦值運(yùn)算符是 =,優(yōu)先級(jí)低于其他運(yùn)算符,所以賦值往往是最后執(zhí)行的。分簡(jiǎn)單賦值運(yùn)算符和擴(kuò)展賦值運(yùn)算符。簡(jiǎn)單賦值就是常見(jiàn)的 =,擴(kuò)展賦值則是在簡(jiǎn)單賦值的基礎(chǔ)上加入一些其他的運(yùn)算,如 +=、-=、*=、/=、%=。
public static void main(String[] args) { int a=5; a += 10; //同等于a=a+10 System.out.println(a); //15 a *= 3; //同等于a=a*3 System.out.println(a); //45 }
字符串連接運(yùn)算符
字符串連接使用 +,該符號(hào)很特別,如果兩邊是數(shù)字則進(jìn)行加法運(yùn)算,如果兩邊是字符串則進(jìn)行連接。
char 字符型,放在單引號(hào)中,只能有一個(gè)。
String 字符串型,放在雙引號(hào)中,數(shù)量不限。
public static void main(String[] args) { System.out.println("我是CSDN博主:"+"敬 之"); //我是CSDN博主:敬 之 System.out.println("主頁(yè):"+"https://majinjian.blog.csdn.net"); //主頁(yè)https://majinjian.blog.csdn.net int age = 24; System.out.println("我的年齡是"+age); //我的年齡是24 }
注意字符串類(lèi)型具有同化性質(zhì),無(wú)論什么類(lèi)型的值跟字符串連接都會(huì)成為字符串類(lèi)型。如下面的語(yǔ)句,1+2 先進(jìn)行加法運(yùn)算得 3,此時(shí) 3 與字符串 “3” 連接,就變成了 “3”,后面的 4 也與字符串 “3” 連接,變成了 “4”,最后輸出字符串 “334”。
public static void main(String[] args) { System.out.println(1+2+"3"+4); //334 }
條件運(yùn)算符
條件運(yùn)算符也稱(chēng)三目運(yùn)算符,同時(shí)對(duì)三個(gè)條件進(jìn)行操作。語(yǔ)法格式如下:
boolean?數(shù)1:數(shù)2
整個(gè)條件運(yùn)算的值為數(shù) 1 或者數(shù) 2,所以最終得到的結(jié)果是這里面二選一。整個(gè)執(zhí)行過(guò)程是先判斷 boolean 的值,值為 true 得數(shù) 1,值為 false 得數(shù) 2。
public static void main(String[] args) { int number = 5; int number1 = number>0?33:66; //值為true得數(shù)1 int number2 = number>6?33:66; //值為false得數(shù)2 System.out.println(number1); //33 System.out.println(number2); //66 }
到此這篇關(guān)于Java 六類(lèi)運(yùn)算符詳解的文章就介紹到這了,更多相關(guān)Java 六類(lèi)運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Hibernate中使用HQLQuery查詢(xún)?nèi)繑?shù)據(jù)和部分?jǐn)?shù)據(jù)的方法實(shí)例
今天小編就為大家分享一篇關(guān)于Hibernate中使用HQLQuery查詢(xún)?nèi)繑?shù)據(jù)和部分?jǐn)?shù)據(jù)的方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03Maven項(xiàng)目中resources配置總結(jié)
這篇文章主要介紹了Maven項(xiàng)目中resources配置總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03java 同步器SynchronousQueue詳解及實(shí)例
這篇文章主要介紹了java 同步器SynchronousQueue詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05Java使用NIO優(yōu)化IO實(shí)現(xiàn)文件上傳下載功能
IO 是基于流來(lái)讀取的,而NIO則是基于塊讀取,面向流 的 I/O 系統(tǒng)一次一個(gè)字節(jié)地處理數(shù)據(jù),這篇文章主要介紹了Java使用NIO優(yōu)化IO實(shí)現(xiàn)文件上傳下載功能,需要的朋友可以參考下2022-07-07Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(27)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07Java通過(guò)索引值實(shí)現(xiàn)約瑟夫環(huán)算法
這篇文章主要介紹了Java通過(guò)索引值實(shí)現(xiàn)約瑟夫環(huán),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Java中使用異或語(yǔ)句實(shí)現(xiàn)兩個(gè)變量的互換
這篇文章主要介紹了Java中使用異或語(yǔ)句實(shí)現(xiàn)兩個(gè)變量的互換,本文直接給出代碼實(shí)例以及運(yùn)行結(jié)果,需要的朋友可以參考下2015-06-06JavaSE實(shí)現(xiàn)文件壓縮與解壓縮的技巧分享
我們?cè)谌粘?shí)際開(kāi)發(fā)中,對(duì)于文件壓縮和解壓縮場(chǎng)景,是非常常見(jiàn)的操作,本文詳細(xì)介紹JavaSE中文件壓縮和解壓縮的實(shí)現(xiàn)方法,包括源代碼解析、應(yīng)用場(chǎng)景案例、優(yōu)缺點(diǎn)分析、案例演示、文末總結(jié)等等,請(qǐng)同學(xué)們耐心閱讀2024-03-03