7. Java運(yùn)算符
??轉(zhuǎn)載請(qǐng)保留原文鏈接:?http://dashidan.com/article/java/basic/Java運(yùn)算符.html
Java運(yùn)算符分為, 算術(shù)運(yùn)算符, 符合運(yùn)算符, 關(guān)系運(yùn)算符, 三目運(yùn)算符.
① Java算數(shù)運(yùn)算符
Java算數(shù)運(yùn)算符: 加, 減, 乘, 除(取模, 取余), 算數(shù)運(yùn)算符從右往左賦值.即將等號(hào)右邊的值,賦給等號(hào)左邊的變量.
加+
inta=1;intb=2;intc=a+b;System.out.println(c);
減-
inta=1;intb=2;intc=a-b;System.out.println(c);
乘*
inta=1;intb=2;intc=a*b;System.out.println(c);
除-取模/
對(duì)整數(shù)取模運(yùn)算,相當(dāng)于取結(jié)果的整數(shù),去掉余數(shù).
inta=1;intb=2;intc=a/b;System.out.println(c);
除-取余%
對(duì)整數(shù)取余運(yùn)算,相當(dāng)于取結(jié)果的余數(shù).
inta=1;intb=2;intc=a%b;System.out.println(c);
當(dāng)兩個(gè)類型不同的數(shù)據(jù)類型運(yùn)算時(shí),結(jié)果自動(dòng)轉(zhuǎn)化為取值范圍大的數(shù)據(jù).
具體規(guī)則:
byte->short->int->long->float->double
布爾型和其它基本數(shù)據(jù)類型之間不能相互轉(zhuǎn)換.
byte型可以轉(zhuǎn)換為short鹃栽、int躏率、、long民鼓、float和double.
short可轉(zhuǎn)換為int薇芝、long、float和double.
char可轉(zhuǎn)換為int丰嘉、long夯到、float和double.
int可轉(zhuǎn)換為long、float和double.
long可轉(zhuǎn)換為float和double.
float可轉(zhuǎn)換為double.
示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java算數(shù)運(yùn)算符*/publicclassDemo1{publicstaticvoidmain(String[]args){/** 加`+`*/inta=1;intb=2;intc=a+b;System.out.println(c);/** 減`-`*/a=1;b=2;c=a-b;System.out.println(c);/** 乘`*` */a=1;b=2;c=a*b;System.out.println(c);/** 除-取模`/`對(duì)整數(shù)取模運(yùn)算,相當(dāng)于取結(jié)果的整數(shù),去掉余數(shù).*/a=1;b=2;c=a/b;System.out.println(c);/** 除-取余`%`對(duì)整數(shù)取余運(yùn)算,相當(dāng)于取結(jié)果的余數(shù).*/a=1;b=2;c=a%b;System.out.println(c);}}
輸出:
3-1201
② Java復(fù)合運(yùn)算符
復(fù)合運(yùn)算符是一種簡(jiǎn)寫. 以+=為例,表示加一個(gè)值再賦值給本身.常用的復(fù)合運(yùn)算符:
+=加法賦值
a+=1;// 等同于以下a=a+1;
-=減法賦值
b-=1;// 等同于以下b=b-1;
*=乘法賦值
c*=1;// 等同于以下c=c*1;
/=除法賦值
d/=1;// 等同于以下d=d/1;
%=模運(yùn)算賦值
e%=1;// 等同于以下e=e%1;
示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java復(fù)合運(yùn)算符*/publicclassDemo2{publicstaticvoidmain(String[]args){inta=0;/** += 運(yùn)算*/a+=1;System.out.println(a);/** -= 運(yùn)算*/intb=0;b-=1;System.out.println(b);/** *= 運(yùn)算*/intc=2;c*=3;System.out.println(c);/** /= 運(yùn)算*/intd=5;d/=3;System.out.println(d);/** %= 運(yùn)算*/inte=5;e%=3;System.out.println(e);}}
輸出:
1-1612
③ Java自增,自減運(yùn)算符
分前綴式(如++i)和后綴式(如i++). 以自增運(yùn)算符(++)為例: 前綴式是先加1再使用,后綴式是先使用再加1. 單獨(dú)執(zhí)行自增自減時(shí)前綴式,后綴式單獨(dú)執(zhí)行結(jié)果一樣.道理同自增運(yùn)算符,只是加1,變成了減1.
inti=0;i++;System.out.println(i);intj=0;++j;System.out.println(j);
放在運(yùn)算過(guò)程中執(zhí)行. 前綴,后綴放在運(yùn)算過(guò)程中結(jié)果不同.
/** 后綴式*//** 初始化a和i*/a=0;i=0;a=i++;/** i使用前是0,此時(shí)i為0不加1,a為0. */System.out.println(a);/** 使用后i加1,i為1*/System.out.println(i);
示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java自增,自減運(yùn)算符*/publicclassDemo3{publicstaticvoidmain(String[]args){/** 前綴,后綴單獨(dú)執(zhí)行結(jié)果一樣*/inti=0;i++;System.out.println(i);intj=0;++j;System.out.println(j);/** 前綴,后綴放在運(yùn)算過(guò)程中結(jié)果不同*//** 前綴式*/inta=0;i=0;a=++i;/** i使用前是0,此時(shí)i為0不加1,a為0. */System.out.println(a);/** 使用后i加1,i為1*/System.out.println(i);/** 后綴式*//** 初始化a和i*/a=0;i=0;a=i++;/** i使用前是0,此時(shí)i為0不加1,a為0. */System.out.println(a);/** 使用后i加1,i為1*/System.out.println(i);}}
輸出:
111101
倒數(shù)第二個(gè)輸出是`0`,這個(gè)就是后綴式的使用后計(jì)算導(dǎo)致的結(jié)果.
④ Java關(guān)系運(yùn)算符
關(guān)系運(yùn)算符用于比較兩個(gè)數(shù)值之間的大小. 其運(yùn)算結(jié)果為一個(gè)布爾值(boolean),只有true(真)和false(假)兩個(gè)取值.
基本數(shù)據(jù)類型的關(guān)系運(yùn)算符:
>大于
<小于
>=大于或等于
<=小于或等于
==等于
!=不等于
示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java關(guān)系運(yùn)算符*/publicclassDemo4{publicstaticvoidmain(String[]args){inta=0;intb=0;booleanc=a>b;System.out.println(c);booleand=a
輸出:
falsefalsetruetrue
⑤ Java邏輯運(yùn)算符
邏輯運(yùn)算符主要用于進(jìn)行條件真(true)假(false)運(yùn)算.包括&&(且), ||(或),!(異或) , ^(非), instanceof(判斷對(duì)象實(shí)例類型).
&&邏輯與
兩目運(yùn)算符,需要2個(gè)值參與運(yùn)算. 符號(hào)兩邊的條件都為true,運(yùn)算結(jié)果為true.如果任一條件為false,結(jié)果為false.
booleana=true;booleanb=false;booleanc=a&&b;// a和b里不同時(shí)為true,故`&&`運(yùn)算的結(jié)果為false System.out.println(c);
||邏輯或
兩目運(yùn)算符,需要2個(gè)值參與運(yùn)算. 符號(hào)兩邊的條如果任一條件為true,結(jié)果為true.如果都為false,結(jié)果為false.
booleana=true;booleanb=false;booleanc=a||b;// a和b里面,a為true,故`||`運(yùn)算的結(jié)果為true System.out.println(c);
!邏輯非
單目運(yùn)算符,需要1個(gè)值參與運(yùn)算.得到與原布爾值相反的值. 原值為true,經(jīng)過(guò)!運(yùn)算,得false. 原值為false,經(jīng)過(guò)!運(yùn)算,得true.
booleana=true;booleanc=!a;// c為 a的相反值,即為true System.out.println(c);
^邏輯異或
兩目運(yùn)算符,需要2個(gè)值參與運(yùn)算. 符號(hào)兩邊的布爾結(jié)果不同時(shí),結(jié)果為true.如果相同(同時(shí)為true,或者同時(shí)為false),結(jié)果為false.
booleana=true;booleanb=false;booleanc=false;booleand=a^b;booleane=b^c;// a和b里不同,故`^`運(yùn)算的結(jié)果為false,d為false System.out.println(d);// c和d里同時(shí)為false,故`^`運(yùn)算的結(jié)果為true,e為true System.out.println(e);
示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java邏輯運(yùn)算符*/publicclassDemo5{publicstaticvoidmain(String[]args){booleana=true;booleanb=false;booleanc=a&&b;/** a和b里不同時(shí)為true,故`&&`運(yùn)算的結(jié)果為false*/System.out.println(c);a=true;b=false;c=a||b;/** a和b里面,a為true,故`||`運(yùn)算的結(jié)果為true*/System.out.println(c);a=true;c=!a;/** c為 a的相反值,即為true*/System.out.println(c);a=true;b=false;c=false;booleand=a^b;booleane=b^c;/** a和b里不同,故`^`運(yùn)算的結(jié)果為false,d為false*/System.out.println(d);/** c和d里同時(shí)為false,故`^`運(yùn)算的結(jié)果為true,e為true*/System.out.println(e);}}
輸出:
falsetruefalsetruefalse
⑥ Java三目運(yùn)算符
也叫條件運(yùn)算符. 由兩個(gè)符號(hào)組成?和:,要求有3個(gè)操作對(duì)象,所以也叫三目運(yùn)算符.
a
如果?前邊的表達(dá)式(a
示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java三目運(yùn)算符*/publicclassDemo6{publicstaticvoidmain(String[]args){inta=1;intb=2;intc=a>b?a:b;/** a > b 為false,所以取":"后邊的值b賦值給c, 故c為2.*/System.out.println(c);}}
輸出:
2
⑦ Java運(yùn)算符優(yōu)先級(jí)
基本的原則是有括號(hào)先算括號(hào)里的,然后先乘除后加減. 乘除都有時(shí),從左往右依次計(jì)算. 加減從左往右依次計(jì)算. 加法和乘法結(jié)合, 示例代碼:
inta=1;intb=2;intc=3;intd=a+b*c;/** 乘號(hào)的優(yōu)先級(jí)比加號(hào)高, 先算b*c再加a,故d為7*/System.out.println(d);
加減乘除混合, 示例代碼:
packagecom.dashidan.lesson6;/*** 大屎蛋教程網(wǎng)-dashidan.com*
* Java教程基礎(chǔ)篇: 6. Java運(yùn)算符* Java運(yùn)算符優(yōu)先級(jí)*/publicclassDemo7{publicstaticvoidmain(String[]args){inta=1;intb=2;intc=3;intd=a+b*c;/** 乘號(hào)的優(yōu)先級(jí)比加號(hào)高, 先算b*c再加a,故d為7*/System.out.println(d);/** 加減乘除混合*/a=1;b=2;c=3;d=4;d=a+b*c/d-5;/** 乘號(hào)和除號(hào)的優(yōu)先級(jí)比加號(hào)高, 先算乘除, 從左往右, b*c得6,d(值為4),`6/4`得`1.5`.取模運(yùn)算省去小數(shù),`b*c/d`得1*//** 加減法從左往右計(jì)算,a+1-5得-3,賦值給d.故d為-3.*/System.out.println(d);}}
輸出:
7-3