Java學習筆記13——算術運算子、賦值運算子、比較運算子
阿新 • • 發佈:2021-11-30
運算:
對常量和變數進行操作的過程稱之為運算
運算子:
對常量和變數進行操作的符號稱之為運算子
運算元(類似於 2 變數b 'a'):
參與運算的資料稱之為運算元
表示式(類似於1+1 'b'+2):
用運算子,把常量或者變數連線起來的並且符合java語法的式子,我們稱之為表示式
不同運算子連線起來的式子體現的是不同型別的表示式
運算子分類:
算數運算子:
+,-,*,/,%,++,-- (/符號表示的是整除的意思,並且取的結果是商的整數部分)
/符號表示的是整除的意思,並且取的結果是商的整數部分
如果我們就想讓結果有小數表示,怎麼辦呢
只需要將其中一個變數變成浮點型別參與運算就可以了
但是如下圖:
System.out.println(3/4*1.0);
這樣是不行,結果是0.0 因為按照運算順序,先除後乘了
應該如下圖所示:
System.out.println(3/(4*1.0));
運算子優先順序圖表:
運算子的優先順序(從高到低)
如果在程式中,要改變運算順序,可以使用()。
%符號表示取餘,如下圖所示結果為3
System.out.println(3%4);
%算術運算子參與運算時,進行的是除法,但是結果取的是餘數(注意不是小數部分)
++,--
++表示的是自增1,單獨使用的時候,結構沒有任何影響,放前放後結果一樣
--表示的是自減1,單獨使用的時候,結果沒有任何影響,放前放後結果一樣
注意:結合表示式使用的時候,不論是++還是--,放在前面先賦值後做自增或者自減
如上圖所示先把a賦值給c,b賦值給d,然後a自增1,b自增1
自減同樣的規律
注意:如果放在前面,是先自加或者自減,然後再賦值
賦值運算子:
=,+=,-=,*=,/=,%=
最基本的賦值運算子是=
看程式寫結果
+=
-=
*=,/=,%=
面試題:
面試題 short s=1, s = s+1; short s=1, s+=1; 上面兩個程式碼有沒有問題,如果有,那裡有問題
s+=1,底層進行了轉換,但是不是我們想當然的轉化為s=s+1,而是轉化成了s=(s的資料型別)(s+1)
預設包含了強制型別轉換
比較運算子、
關係運算符:
==與=的區別:
=是一個賦值運算子
a=2;
==是一個關係運算符,進行比較操作
(a==2);
==,!=,<,>,<=,>=
關係運算符的結果要麼是true要麼是false,所以關係運算符的結果是一個布林型別(boolean型)
>=的優先順序比=高(由運算子優先順序圖示可以檢視)
優先順序 | 描述 | 運算子 |
1 | 括號 | ()、[] |
2 | 正負號 | +、- |
3 | 自增自減,非 | ++、--、! |
4 | 乘除,取餘 | *、/、% |
5 | 加減 | +、- |
6 | 移位運算 | <<、>>、>>> |
7 | 大小關係 | >、>=、<、<= |
8 | 相等關係 | ==、!= |
9 | 按位與 | & |
10 | 按位異或 | ^ |
11 | 按位或 | | |
12 | 邏輯與 | && |
13 | 邏輯或 | || |
14 | 條件運算 | ?: |
15 | 賦值運算 | =、+=、-=、*=、/=、%= |
16 | 位賦值運算 | &=、|=、<<=、>>=、>>>= |