Java基礎(chǔ)學(xué)習(xí)之運(yùn)算符相關(guān)知識(shí)總結(jié)
1.算術(shù)運(yùn)算符
- +表示加法運(yùn)算符
- -表示減法運(yùn)算符
- *表示乘法運(yùn)算符
- /表示除法運(yùn)算符
- %表示取模/取余運(yùn)算符
package com.lagou.Day03; /** * 算術(shù)運(yùn)算符 */ public class Demo01 { public static void main(String[] args) { //1.聲明兩個(gè)int類(lèi)型的變量并初始化 //int ia = 6;ib = 2;//表示聲明兩個(gè)int類(lèi)型的變量ia和ib,不推薦使用 int ia = 6; int ib = 2; //實(shí)現(xiàn)算術(shù)運(yùn)算符 int ic = ia + ib; System.out.println(ic);//8 System.out.println(ia + ib);//8 //其中ia+ib這個(gè)整體叫做表達(dá)式 ia、ib叫做操作數(shù) System.out.println(ia + ib);//8 System.out.println(ia - ib);//4 System.out.println(ia * ib);//12 System.out.println(ia / ib);//3 System.out.println(ia % ib);//0 } }
2.算術(shù)運(yùn)算符的注意事項(xiàng)
package com.lagou.Day03; public class Demo02 { public static void main(String[] args) { //注意一:當(dāng)兩個(gè)整數(shù)相除時(shí)結(jié)果只保留整數(shù)部分,丟棄小數(shù)部分 System.out.println(5 / 2);//2 //注意二:若希望保留小數(shù)部分 //方式一:使用強(qiáng)制類(lèi)型轉(zhuǎn)換將其中一個(gè)操作數(shù)轉(zhuǎn)換位double類(lèi)型再運(yùn)算即可 System.out.println((double)5 / 2);//2.5 System.out.println(5/(double)2);//2.5 System.out.println((double)5/(double)2);//2.5 //System.out.println((double) (5/2));//2.0 //方式二:讓其中一個(gè)操作數(shù)乘以1.0即可(推薦) System.out.println(5*1.0/2);//2.5 //注意三:0不能做除數(shù) //Exception in thread "main" java.lang.ArithmeticException編譯可以通過(guò),運(yùn)行不行 System.out.println(5 / 0); System.out.println(5 / 0.0);//Infinity 無(wú)窮 System.out.println(0 / 0.0);//NaN not a Number } }
3.算術(shù)運(yùn)算符實(shí)現(xiàn)時(shí)間拆分
- 提示用戶(hù)輸入正整數(shù)類(lèi)型的秒數(shù),拆分秒數(shù)后輸出x小時(shí)x分x秒。
- 如:輸入7199,輸出1小時(shí)59分59秒
package com.lagou.Day03; import java.util.Scanner; public class Test01 { public static void main(String[] args) { System.out.println("請(qǐng)輸入正整數(shù)"); Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int hour = x / 3600;//拆分小時(shí)數(shù) int min = x % 3600 /60;//拆分分鐘數(shù) int sec = x % 60; System.out.println(x + "秒轉(zhuǎn)換位" + hour + "小時(shí)" + min + "分鐘"+sec+"秒"); } }
4.字符串鏈接符的概念和使用
+可以實(shí)現(xiàn)字符串的連接,同時(shí)可以實(shí)現(xiàn)字符串與其他數(shù)據(jù)類(lèi)型"相連"
package com.lagou.Day03; /** * +既可以作為字符串連接符,又可以作為加法運(yùn)算符 * 只要+兩邊的操作數(shù)中有一個(gè)操作數(shù)是字符串類(lèi)型,則該+就被當(dāng)作字符串連接符處理, * 否則當(dāng)作加法運(yùn)算符處理 */ public class Demo03 { public static void main(String[] args) { int hour = 1; int min = 1; int sec = 6; System.out.println(hour+min+sec);//數(shù)字:8 System.out.println(hour+min+sec+"");//字符串:8 System.out.println(hour+min+""+sec);//26; System.out.println(hour+""+min+sec);//116 System.out.println(""+hour+min+sec);//116 System.out.println(""+(hour+min+sec));//先算小括號(hào)里面:8 } }
5.關(guān)系/比較運(yùn)算符
>表示是否大于運(yùn)算符 >=表示是否大于等于運(yùn)算符 <表示是否小于運(yùn)算符 <=表示是否小于等于運(yùn)算符 ==表示是否等于運(yùn)算符 !=表示是否不等于運(yùn)算符
package com.lagou.Day03; /** * 關(guān)系運(yùn)算符 */ public class Demo04 { public static void main(String[] args) { int a = 5; int b = 2; System.out.println(a > b);//true System.out.println(a >= b);//true System.out.println(a < b);//false System.out.println(a <= b);//false System.out.println(a == b);//false System.out.println(a != b);//true } }
6.關(guān)系運(yùn)算符實(shí)現(xiàn)負(fù)數(shù)判斷
提示用戶(hù)輸入一個(gè)整數(shù),使用關(guān)系運(yùn)算符判斷該整數(shù)是否為負(fù)數(shù),若是則打印true,若不是則打印false。
package com.lagou.Day03; import java.util.Scanner; public class Test02 { public static void main(String[] args) { System.out.println("請(qǐng)輸入一個(gè)整數(shù)"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); System.out.println(num<0); } }
7.自增減運(yùn)算符概念和使用
- ++表示自增運(yùn)算符,用于使得當(dāng)前變量自身的數(shù)值加1的效果
- –表示自減運(yùn)算符,用于使得當(dāng)前變量自身的數(shù)值減1的效果
package com.lagou.Day03; public class Demo05 { public static void main(String[] args) { int a = 10; System.out.println(a);//10 //表示讓變量a自身數(shù)值加1,并覆蓋變量原來(lái)的數(shù)值 a++; System.out.println(a);//11 ++a; System.out.println(a);//12 } }
8.前后加加的區(qū)別
package com.lagou.Day03; /** * a++這個(gè)整體叫做表達(dá)式,其中a叫做操作數(shù)/變量。 * 也就是a++和a表示不同含義,因此所占的內(nèi)存空間應(yīng)該不同 */ public class Demo06 { public static void main(String[] args) { int a = 10; //此處打印表達(dá)式結(jié)果 //后++表示先讓變量a的數(shù)值作為整個(gè)表達(dá)式的結(jié)果,然后再讓a變量自身的數(shù)值加1 System.out.println(a++);//10 //此處打印變量的結(jié)果 //前++先讓a變量自身數(shù)值加1,然后再讓變量的數(shù)值作為整個(gè)表達(dá)式的結(jié)果 System.out.println(a);//11 System.out.println(++a);//12 System.out.println(a);//12 } }
9.自增減運(yùn)算符的筆試考點(diǎn)
package com.lagou.Day03; public class Test04 { public static void main(String[] args) { int a = 12; int b = a++; System.out.println(b);//12 System.out.println(a);//13 int c = ++a; System.out.println(c);//14 System.out.println(a);//14 System.out.println(a++ + ++a);//30 System.out.println(a);//16 } }
10.邏輯運(yùn)算符
- &&表示邏輯與運(yùn)算符,相當(dāng)于“并且”,同真為真,一假為假。
- ||表示邏輯或運(yùn)算符,相當(dāng)于“或者”,一真為真,同假為假。
- !表示邏輯非運(yùn)算符,相當(dāng)于“取反”,真為假,假為真。
- 邏輯運(yùn)算符的操作數(shù)均為boolean表達(dá)式。
package com.lagou.Day03; public class Demo07 { public static void main(String[] args) { boolean b1 = true; boolean b2 = false; System.out.println(b1 && b2);//false System.out.println(b1 || b2);//true System.out.println(!b1);//false } }
11.邏輯運(yùn)算符的短路特性
- 對(duì)于邏輯與運(yùn)算符來(lái)說(shuō),若第一個(gè)表達(dá)式為假則結(jié)果為假,此時(shí)跳過(guò)第二個(gè)表達(dá)式;
- 對(duì)于邏輯或運(yùn)算符來(lái)說(shuō),若第一個(gè)表達(dá)式為真則結(jié)果為真,此時(shí)跳過(guò)第二個(gè)表達(dá)式;
package com.lagou.Day03; public class Test04 { public static void main(String[] args) { int a = 3; int b = 5; boolean c = (++a == 3) && (++b == 5); System.out.println(c);//false System.out.println(a);//4 System.out.println(b);//5 } }
12.邏輯運(yùn)算符判斷三位數(shù)
package com.lagou.Day03; import java.util.Scanner; /** * 編程使用邏輯運(yùn)算符判斷三位數(shù) */ public class Demo09 { public static void main(String[] args) { //1.提示用戶(hù)輸入一個(gè)正整數(shù)并使用變量記錄 System.out.println("請(qǐng)輸入一個(gè)正整數(shù)"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); //2.使用邏輯運(yùn)算符判斷是否為三位數(shù)并打印 System.out.println(num>=100 && num<=999); } }
13.條件/三目運(yùn)算符
條件表達(dá)式?
表達(dá)式1:
表達(dá)式2
14.三目運(yùn)算符查找最大值
15.賦值運(yùn)算符
- =表示賦值運(yùn)算符,用于將=右邊的數(shù)據(jù)賦值給=左邊的變量,覆蓋變量原來(lái)的數(shù)值。
- 賦值表達(dá)式本身也是有值,其本身之值即為所賦之值
- +=、-=、*=、/=、…
package com.lagou.Day03; public class Demo11 { public static void main(String[] args) { //1.聲明一個(gè)int類(lèi)型變量并初始化 int a = 3; System.out.println(a);//3 System.out.println("--------------"); //2.簡(jiǎn)單賦值運(yùn)算符的使用 //表示將數(shù)據(jù)5賦值給變量a并且覆蓋變量a原來(lái)的數(shù)值 a = 5; System.out.println(a);//5 //下面的代碼是在打印表達(dá)式的結(jié)果 System.out.println(a=5);//5 int b = a = 6; System.out.println(a);//6 System.out.println(b);//6 int c; c = b = a = 8; System.out.println(a);//8 System.out.println(b);//8 System.out.println(c);//8 System.out.println("--------------"); //3.復(fù)合賦值運(yùn)算符的使用 a = a + 2; System.out.println(a);//10 } }
16.賦值運(yùn)算符的考點(diǎn)一
package com.lagou.Day03; public class Test05 { public static void main(String[] args) { byte b1 = 10; System.out.println(b1);//10 /** * 錯(cuò)誤:不兼容的類(lèi)型:從int轉(zhuǎn)換到byte可能會(huì)有損失 * byte + int 相加結(jié)果還是int類(lèi)型 */ //b1 = b1 + 2; /** * 錯(cuò)誤:不兼容的類(lèi)型:從int轉(zhuǎn)換到byte可能會(huì)有損失 * byte + byte 相加結(jié)果還是int類(lèi)型 */ //b1 = b1 + (byte)2; b1 += 2; } }
17.賦值運(yùn)算符的考點(diǎn)二
package com.lagou.Day03; public class Test06 { public static void main(String[] args) { /** * a == 2;-表示判斷變量a的數(shù)值是否等于2 * 2 == a;-表示判斷2是否等于變量a的數(shù)值,從結(jié)果上來(lái)講等價(jià),推薦該方式。 * a = 2; -表示講2賦值給變量a,覆蓋變量a原來(lái)的數(shù)值 * 2 = a; -編譯報(bào)錯(cuò) */ } }
18.移位運(yùn)算符
<<左移運(yùn)算符,用于將數(shù)據(jù)的二進(jìn)制位向左移動(dòng),右邊使用0補(bǔ)充>>右移運(yùn)算符,用于將數(shù)據(jù)的二進(jìn)制位向右移動(dòng),左邊使用符號(hào)位補(bǔ)充>>>表示邏輯右移運(yùn)算符,用于將數(shù)據(jù)的二進(jìn)制位向右移動(dòng),左邊使用0補(bǔ)充
19.移位運(yùn)算符使用
package com.lagou.Day03; /** * 編程實(shí)現(xiàn)移位運(yùn)算符的使用 */ public class Demo13 { public static void main(String[] args) { //1.聲明一個(gè)byte類(lèi)型的變量并初始化 byte b1 = 13; //2.打印變量的數(shù)值 System.out.println("b1 = "+b1);//b1=13 System.out.println("--------"); //3.移位運(yùn)算符的使用 /** * 13的二進(jìn)制位是:0000 1101 =>左移1位的結(jié)果是:000 11010=>換算位十進(jìn)制整數(shù)的:26 */ //byte b2 = b1 << 1;//錯(cuò)誤:不兼容的類(lèi)型:從int轉(zhuǎn)換到byte可能會(huì)有損失 自動(dòng)提升位int類(lèi)型,也就是32位 byte b2 = (byte)(b1 << 1); System.out.println("b2 = " + b2);//26 左移1位相當(dāng)于當(dāng)前整數(shù)的數(shù)值*2 System.out.println(b1 << 2);//52 System.out.println("----------"); System.out.println(b1 >> 1);//6 System.out.println(b1 >> 2);//3 System.out.println("----------"); System.out.println(b1 >>> 2);//3 } }
20.位運(yùn)算符
- &表示按位與運(yùn)算符,按照二進(jìn)制位進(jìn)行與運(yùn)算,同真為真,有假為假(同1為1,一0為0)
- |表示按位或運(yùn)算符,按照二進(jìn)制位進(jìn)行或運(yùn)算,有真為真,同假為假
- ~表示按位取反運(yùn)算符,按照二進(jìn)制位進(jìn)行取反,1為0,0為1
- ^表示按位異或運(yùn)算符,按照二進(jìn)制位進(jìn)行異或運(yùn)算,同為0,不同為1
21.位運(yùn)算符使用
package com.lagou.Day03; /** * 位運(yùn)算符 */ public class Demo14 { public static void main(String[] args) { //1.聲明兩個(gè)byte類(lèi)型的變量并初始化 byte b1 = 11; byte b2 = 13; //2.實(shí)現(xiàn)位運(yùn)算符的使用 /** * b1的二進(jìn)制:0000 1011 * b2的二進(jìn)制:0000 1101 */ System.out.println(b1 & b2);//同1為1,一0為0 0000 1001=>轉(zhuǎn)為十進(jìn)制是:9 System.out.println(b1 | b2);//一1為1,同0為0 0000 1111=>轉(zhuǎn)為十進(jìn)制是:15 System.out.println(b1 ^ b2);//相同為0,不同為1 0000 0110=>轉(zhuǎn)為十進(jìn)制是:6 System.out.println(~b1);//1為0,0為1 1111 0100=> -12 //二進(jìn)制1111 0100轉(zhuǎn)為十進(jìn)制 先減1:1111 0011 按位取反 0000 1100 轉(zhuǎn)為十進(jìn)制:12 結(jié)果:-12 } }
22.運(yùn)算符的優(yōu)先級(jí)
- ()的優(yōu)先級(jí)極高
- =的優(yōu)先級(jí)極低
- 若無(wú)法確認(rèn)優(yōu)先級(jí),則使用()來(lái)確保即可
到此這篇關(guān)于Java基礎(chǔ)學(xué)習(xí)之運(yùn)算符相關(guān)知識(shí)總結(jié)的文章就介紹到這了,更多相關(guān)Java運(yùn)算符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mybatisplus where QueryWrapper加括號(hào)嵌套查詢(xún)方式
這篇文章主要介紹了mybatisplus where QueryWrapper加括號(hào)嵌套查詢(xún)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。2022-01-01IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法
這篇文章主要介紹了IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Mybatis pagehelper分頁(yè)插件使用過(guò)程解析
這篇文章主要介紹了mybatis pagehelper分頁(yè)插件使用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02Java+Selenium調(diào)用JavaScript的方法詳解
這篇文章主要為大家講解了java在利用Selenium操作瀏覽器網(wǎng)站時(shí)候,有時(shí)會(huì)需要用的JavaScript的地方,代碼該如何實(shí)現(xiàn)呢?快跟隨小編一起學(xué)習(xí)一下吧2023-01-01Java流程控制之循環(huán)結(jié)構(gòu)while、do...while
這篇文章主要介紹了Java流程控制之循環(huán)結(jié)構(gòu)while及do...while,文章除了講解循環(huán)結(jié)構(gòu)while和do...while之外,還講解了他們之間的區(qū)別,下面我們就一起進(jìn)入文章講解更多詳細(xì)內(nèi)容吧2021-12-12Spring Boot和Kotlin的無(wú)縫整合與完美交融
這篇文章主要給大家介紹了關(guān)于Spring Boot和Kotlin的無(wú)縫整合與完美交融的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解
這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07