java--運算子和表示式
阿新 • • 發佈:2022-03-11
運算子:就是對常量或者遍歷進行操作的符號;
表示式:用運算子把常量或者變數連線起來符合java語法的式子稱為表示式,不同運算子連線的表示式體現的是不同型別的表示式。
一、算術運算子
1、使用%運算子:
- java中運算子除了加減乘除之外,還有取餘(%)運算以及自增(++)自減(--)
- 取餘(取模),意為取餘數,可以用於整數、char和浮點數。
1 //1、取餘 2 int n=255; 3 char n2='A'; 4 double n3=16.8; 5 System.out.println(n3&8);//0.800000000000007 6 int a=6; 7 intb=4; 8 System.out.println(a+b);//10 9 System.out.println(a-b);//2 10 System.out.println(a*b);//24 11 System.out.println(a/b);//1 12 System.out.println(a%b);//2 13 //除法得到的是商,取餘得到的是餘數 14 //整數相除只能得到整數,要想得到小數,必須有浮點數的參與 15 System.out.println(6.0/4);//1.5
注意事項:
- /和%的區別:兩個資料做除法,/取結果的商,%取結果的餘數;
- 整數操作只能得到整數,要想得到小數,必須有浮點數參與運算。
2、字元“+”操作:
拿字元在計算機底層對應的數值來進行計算的
‘A’----65;A-Z是連續的
'a'----97;a-z是連續的
‘0’----48;0-9是連續的
1 int i=10; 2 //char c='A';//75,"A"的值為65 3 //char c='a';//107 “a”的值為97 4 char c='0';//58 “0”的值為48 5 System.out.println(i + c);//58 6 7 8 //char ch=i+c;//型別錯誤,char型別會被自動提升為int型別 9 int j=i+c; 10 System.out.println(j);//58 11 12 double k=10+13.14; 13 System.out.println(k);
注意:算術表示式中包含多個基本資料型別的值的時候,整個算術表示式的型別會自動進行提升
提升規則:
-
-
整個表示式的型別自動提升到表示式中最高等級操作同樣的型別
-
3、字串“+”操作:
-
-
在“+”操作中,如果出現了字串,就是連線運算子,否則就是算數運算,當連續進行“+”操作時,從左到右逐個執行
-
二、自增自減運算
- 前置自增自減:先自增自減後運算
- 後置自增自減:先運算後自增自減(後邊的居多)
1 int a=10,b=20; 2 int c1=a++; 3 int c2=++b; 4 System.out.println("a="+a+",b="+b+"c1="+c1+",c2"+c2);//11 21 10 21
結論:
- 單獨使用的時候,變數無論是前置還是後置運算,其結果一定為+1;
- 只在使用它的時候考慮前置和後置規則;
- 參與操作的時候,如果放在變數的後邊,先拿變數參與操作,後拿變數做++或--;
- 參與操作的時候,如果放在變數的前邊,先拿變數做++或者--,後拿變數參與運算。
三、關係運算符:
1 //不管成立不成立,結果為布林值,true or false 2 3 int max=10; 4 int num=9; 5 boolean b1=max>15;//false 6 boolean b2=num%2==1;//true 7 System.out.println(num=max);//把max的值賦值給num
四、邏輯運算子:
結論:與運算:一假必假
或運算:一真必真
2、使用邏輯運算子
1 //4、邏輯運算子 2 //與 3 int score=80; 4 boolean res13=score>=60&&score<=90;//true 5 //或 6 boolean flag=true; 7 int i=200; 8 boolean res2=flag||(i>=0&&i<10);//true 9 //非 10 res2=!flag||(i>=0&&i<10);//flase
3、“短路邏輯”運算子
1 int i=100,j=200; 2 boolean b1=(i>j)&&(i++>100); 3 System.out.println(b1); 4 System.out.println(i); 5 boolean b2=i>0||j++>200; 6 System.out.println(b2); 7 System.out.println(j);
五、賦值運算
1、使用“=”進行賦值運算
i=1;表示式將1賦值給i;
1 //賦值運算子 2 int x,y,c; 3 x=y=c=100; 4 //將100賦值給c----》b=(c=100)
2、使用擴充套件賦值表示式
1 i=10; 2 i += 20;//把左邊和右邊的資料做加法操作,結果賦值給左邊,相當於 i=i+20; 3 //注意:擴充套件的賦值運算子底層隱含了強制型別轉化; 4 short s=10; 5 s=(short)(s+20); 6 System.out.println(s);
六、三目運算子
1、使用三目運算子
-
boolean表示式?表示式1:表示式2;
-
boolean表示式為true,則運算表示式1,否則執行表示式2.
-
1 String s=65>60?"及格":"不及格";//不及格
2、三目的巢狀:
1 int a=-1; 2 String r=a>0?"正數":(a==0?"0":"負數");
七、位運算子:
按照二進位制數進行操作;
運算元:整型
& | ^:boolen
&:(與運算:兩個同時為1,結果為1,否則為0)
0&0 1&0 0&1 1&1
|:(或:參加運算的兩個物件,一個為1,其值為1)
0|0 1|0 0|1 1|1
^:(異或:相同為0,不同為1,將某些位置取反)
0^0 1^0 0^1 1^1