JAVA基礎(3)-運算符
運算符
再用運算符進行運算操作時有兩個原則:
1、不同類型的數據做運算時,一定會先轉換成較大範圍類型後再進行運算。
2、byte,short,char這些類型運算時,一定會先轉成int類型後再進行運算,結果int類型
一定要註意封閉式運算。
下表中具有最高優先級的運算符在的表的最上面,最低優先級的在表的底部。
算術運算符
+,-,*,/,%,++,--
編程中的+,-,*和我們平時用到的幾乎沒什麽區別,這裏就不介紹了
/ :除號
情況1:
參與的類型都是整型時,做取整運算,即商n余m, 結果為n,2/3----商0余2。結果為0(也就是運算結果只保留整數位)
情況2:
只要有一個浮點數參與,就會做類似精確運算(在除2時會是精確運算)。
%
做除法運算時,商n余m,結果為m.
情況1:參與運算都是整數時,余數是精確值
情況2: 有浮點數參與時,余數不一定是精確值。
註意:
取余運算一般被用來判斷 某一個數能否被另外一個數整除。
被除數為正,取余結果一定為正
被除數為負,取余結果一定為負。
++ / --:自增自減運算符
符號要與變量一起使用。表示變量自動+1,或自動-1;
列:++a/a++/--a/a--;
++a/a++:是a=a+1的簡寫
--a/a--:是a=a-1的簡寫
情況1: 即與變量在一起,不與其他任何符號連用時
(單獨使用)
++a
a++
--a
a--
此時,變量一定會+1或-1;
情況2:自增/自減運算與其他符號連用時
需要考慮表達式的值。
++a/a++/--a/a--整體看成表達式
口訣:
符號在前,先運算再賦值
符號在後,先賦值在運算
解析:符號在前時,變量先自增/自減,新值賦值給表達式
符號在後時,先把變量的值賦值給表達式,然後變量再自增/自減
關系運算符
>,>=,<,<=,==,!= 它們所表達的意思與數學中的用法一致,用來判斷條件是否成立。一般都用在分支結構或循環結構中使用
邏輯運算符
當有兩個條件以上進行判斷是否成立時,需要使用邏輯運算符。即與,或,非 (&&,||,!)
數學中,判斷a是否大於1並且小於3時,寫法如下:1<a<3 java語言中,沒有上述寫法,需要使用&&寫法如下:a>1&&a<3或a<3&&a>1
&&(與):用於判斷兩個條件是否同時成立。(全真為真,一假則假)
||(或):用於判斷是否有條件成立。(一真即真,全假則假)
!(非):用於條件的否定。(非真即假,非假即真)
邏輯運算符又稱之為短路運算符,當使用&&或者||時,第一個條件能確定結果時,就不會執行第二個條件,這種行為可視為短路現象。(單個符號的 &(與) |(或) 沒有短路現象。)
賦值運算符
=:賦值運算,給前面的變量賦值。
擴展:
+=,-=,*=,/=,%=
a+=1相當於 a = a + 1
a-=b相當於 a = a - b;
a*=b相當於 a = a * b;
a/=b相當於 a = a / b;
a%=b相當於 a = a % b;
字符串拼接符號
+: 當+前後,只要有一個是字符串類型,就做拼接操作,拼接後的結果是字符串類型。
練習代碼:
public static void main(String[] args) { int a = 1; int b = 2; String str = "3"; String result = a+b+str; System.out.println(result);//"33" result = str+a+b; System.out.println(result);//"312" result = a+str+b; System.out.println(result);//"132" System.out.println(1+2+a+str+b+3);//"4323" System.out.println(1+2+a+"3"+a*b+str);//"4323" }
三目運算符
變量類型 變量= 條件表達式?值1:值2;
變量類型:需要與值1或值2的類型相同。如果值1與值2的類型不相同,則要可以自動轉換。
練習代碼:
public static void main(String[] args){ /* 找出num1 = 3,num2 = 5最大值 */ int num1 = 3,num2 = 5; int numMax = num1>num2? num1:num2; /* int a = 5,b = 10,c = 3; 找出max,mid,min */ int a = 5,b = 10,c = 3; int min = a<b? (a<c? a:c):(b<c? b:c); int max = a>b? (a>c? a:c):(b>c? b:c); int mid = a>b? (b>c? b:(a>c? c:a)):(a>c? a:(b>c? c:b)); System.out.println("最小值:"+min); System.out.println("最大值:"+max); System.out.println("中間值:"+mid); }
JAVA基礎(3)-運算符