java運算子
一、算數運算子
符號 | 含義 |
---|---|
+ | 加法 |
- | 減法 |
* | 乘法 |
/ | 除法 |
% | 餘數 |
++ | 自增 |
-- | 自減 |
這些是常用的算數運算子,在java基礎階段,掌握這些就可
- 加減乘除運算子
程式碼例項:
public class Demo01 {
public static void main(String[] args) {
//二元運算子
int a=10;
int b=20;
int c=25;
int d=30;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
//當輸出數為浮點型的時候,就需要把資料進行強制轉換(https://www.cnblogs.com/lingstar/p/16441976.html)
System.out.println(a/(double)b);
//模運算,取餘
System.out.println("輸出c%a的結果:"+((double)c%a));
}
}
輸出結果:
30
-10
200
0.5
輸出c%a的結果:5.0
- 自增與自減運算
自增自減是java中常用的運算子,下面以自增為例,自減也同樣適用
程式碼示例:
public class Demo04 {
public static void main(String[] args) {
//運算子中的自增(++)與自減(--) 一元運算子
int a=5;
int b=a++;//++在後,先賦值再自增
System.out.println(b);
System.out.println(a);
int m=3;
int n=++m;//++在後,先自增,再進行賦值
System.out.println("============分割線================");
System.out.println(m);
System.out.println(n);
System.out.println("============分割線================");
//短路運算(瞭解即可)
int c=10;
boolean d=(c<4)&&(c++>4);
//可以看得到前面c<4是不成立的,那麼就不會執行後面的自增運算,造成短路運算-
System.out.println(d);
System.out.println(c);
}
}
輸出結果:
5
6
============分割線================
4
4
============分割線================
false
10
二、賦值運算子
- 基本賦值運算子=
java基本運算子,實際上不是等於,它相當於把右邊表示式的值賦給等號左邊的運算數,除了基本的運算子之外,還有一些不常用的,感興趣的可以自行先了解
三、關係運算子
常見的關係運算子有
符號 | 含義 |
---|---|
> | 大於 |
< | 小於 |
== | 等於 |
!= | 不等於 |
>= | 大於等於 |
<= | 小於等於 |
程式碼示例:
public class Demo03 {
public static void main(String[] args) {
//關係運算子返回的結果:正確,錯誤 布林值
int a=10;
int b=30;
int c=101;
System.out.println("輸出a>b的結果:"+(a>b));
System.out.println("輸出a<b的結果:"+(a<b));
System.out.println("輸出a==b的結果:"+(a==b));
System.out.println("輸出a!=b的結果:"+(a!=b));
}
}
輸出結果:
輸出a>b的結果:false
輸出a<b的結果:true
輸出a==b的結果:false
輸出a!=b的結果:true
四、邏輯運算子
符號 | 含義 | 運用 |
---|---|---|
&& | 邏輯與運算 | 全真為真,有假則假 |
|| | 邏輯或運算 | 有真為真,全假為假 |
! | 邏輯非運算 | 若真為假,若假為真 |
程式碼示例:
public class Demo06 {
public static void main(String[] args) {
//與 (and) 或(or) 非(取反)
boolean a=true;
boolean b=false;
//邏輯與運算,全真為真,有假則假
System.out.println("a&&b:"+(a&&b));
//邏輯或運算,有真為真,全假為假
System.out.println("a||b:"+(a||b));
//邏輯非運算,若真為假,若假為真
System.out.println("!(a&&b):"+(!(a&&b)));
}
}
輸出結果:
a&&b:false
a||b:true
!(a&&b):true
五、位運算子
-
位運算子
&並 |或 ^異或 ~取反a=0011 1100 b=0000 1001 a&b=0000 1000 a|b=0011 1101
異或是同值為0,異值為1
a^b=0011 0111
取反,顧名思義,0為1,1為0
~b=1111 0110
左移<<
左移是不管正負,低位補0 。相當於*2,
24的二進位制補碼為0001 1000
左移兩位後變為0110 0000
結果為96,也就是2422
右移>>
如果該數為正,則高位補0,若為負數,則高位補1 , 相當於/2
24的二進位制補碼為0001 1000
右移兩位之後變為0000 0110
結果為6
左移右移效率極高
六、三元運算子
java中的三元運算子跟java中的if語句類似,可以說是if語句的一種簡寫
程式碼示例:
public class Demo09 {
public static void main(String[] args) {
//三元運算子
//x?y:z
//如果x==true,則結果為y,否則結果為z
int score=80;
String type=score<80?"不及格":"及格";//一定掌握,三元運算子
System.out.println(type);
}
}
輸出結果:
及格
既然是if語句的簡寫,那麼用if語句也可以輕鬆實現
程式碼示例:
public class Demo09 {
public static void main(String[] args) {
int score=80;
if(score<60){
System.out.println("不及格");
}else {
System.out.println("及格");
}
}
}
輸出結果:
及格