Java入門系列-06-運算符
阿新 • • 發佈:2018-10-11
Language 相加 more start pre 進制 `` lock ati 這篇文章為你搞懂2個問題
- java 中的常用運算符有哪些?如何使用?
- 這些運算符的運算優先級是怎樣的?
算數運算符
明顯是做數學運算的,包括以下符號:
-
+
加法運算
敲一敲:public class DemoAdd { public static void main(String[] args) { int sum=2+3; System.out.println(sum);//輸出變量 sum 的值 int a=5; int b=3; int result=a+b;//將變量 a 的值與變量 b 的值相加 System.out.println(result); result+=20;//相當於 result=result+20; System.out.println(result); } }
當對一個變量本身進行算數運算可以使用
+=
或-=
或*=
或/=
或%=
進行簡化int a=10;a+=2;
在聲明變量後進行操作
但聲明變量時賦值便是非法的int x+=10;
-
減法運算
敲一敲:public class DemoMinus { public static void main(String[] args) { int diff=2-3; System.out.println("差:"+diff); double a=55.4; double b=5.2; double result=a-b; System.out.println("變量a的值減變量b的值等於:"+result);//結果不一定精準 result-=10;//相當於 result=result-10; System.out.println("結果:"+result); } }
*
乘法運算
敲一敲:public class DemoMultiply { public static void main(String[] args) { int product=2*3; System.out.println("積:"+product); double a=10; double b=5; double result=a*b; System.out.println("變量a的值乘以變量b的值等於:"+result); result*=10;//相當於 result=result*10; System.out.println("結果:"+result); } }
/
除法運算
敲一敲:public class DemoDivide { public static void main(String[] args) { int product=5/2; System.out.println("商:"+product); double a=5; double b=2; double result=a/b; System.out.println("變量a的值除以變量b的值等於:"+result); result/=10;//相當於 result=result/10; System.out.println("結果:"+result); } }
5. `%` 取模、取余運算
敲一敲:
```java
public class DemoRemainder {
public static void main(String[] args) {
//正常求余數
int result=10%3;
System.out.println("10%3="+result);
//小數在前
int result1=2%5;
System.out.println("2%5="+result1);
//其中一個是負數
int result2=-3%2;
System.out.println("-3%2="+result2);
//兩個數都是負數
int result3=-2%-5;
System.out.println("-2%-5="+result3);
}
}
++
--
自增、自減運算符
敲一敲:public class DemoSelf { public static void main(String[] args) { int a=10; a++;//後置自增 System.out.println(a);//11 --a;//前置自減 System.out.println(a);//10 System.out.println(++a);//11 System.out.println(a++);//11 System.out.println(a);//12 } }
自增、自減運算符是對一個變量本身進行加1或減1的操作
運算符可以防置在變量前或後
前置的運算符會先進行加1或減1的操作然後再使用,而後置則是先使用再進行操作
比較運算符
對比兩者之間的關系,運算後的結果是布爾值
符號 | 介紹 |
---|---|
> | 大於 |
< | 小於 |
== | 等於 用於比較值和內存地址 |
!= | 不等於 |
>= | 大於等於 |
<= | 小於等於 |
敲一敲:
public class DemoCompare {
public static void main(String[] args) {
System.out.println(10>5);//10大於5 true
System.out.println(10<5);//10小於5 false
System.out.println(1!=1);//1不等於1 false
System.out.println(10==5);//10等於5 false
System.out.println(9>=9);//9大於等於9 true
System.out.println(5<=8);//5小於等於8 true
}
}
邏輯運算符
符號 | 介紹 |
---|---|
&& |
與 運算符兩邊都為true運算結果為true |
|| |
或 運算符只要一邊為true運算結果為true |
! |
非 取反,為true時結果為false,為false時結果為true |
敲一敲:
public class DemoLogic {
public static void main(String[] args) {
int age=50;
int money=100;
//兩邊都不符合條件 false
System.out.println((age<40)&&(money>100));
//只符合一個條件 false
System.out.println((age<60)&&(money>100));
//兩邊都符合條件 true
System.out.println((age<60)&&(money>30));
//兩邊都不符合條件 false
System.out.println((age<40)||(money>100));
//只符合一個條件 true
System.out.println((age<60)||(money>100));
//兩邊都符合條件 true
System.out.println((age<60)||(money>30));
boolean isBig=age>60;//false
System.out.println(!isBig);//取反 true
}
}
位運算符
用於對二進制數據的操作
符號 | 介紹 |
---|---|
>> |
對二進制向右位移n位 |
<< |
對二進制向左位移n位 |
& |
位與運算 同位的二進制都為1時結果為1 |
| |
位或運算 同位的二進制有一個為1時結果為1 |
^ |
異或 從二進制高位開始比較,如果相同則為0,不相同則為1。 |
~ |
位非 |
敲一敲:
demo1
public class DemoBit {
public static void main(String[] args) {
System.out.println(10>>1);//5
System.out.println(7<<1);//14
}
}
位移運算符操作的是二進制,上例中 10 的二進制是
1010
向右位移1位 變成了101
左邊空缺將用 0 補上0101
轉為10進制為 5
向左位移原理一樣 7 的二進制為0111
向左位移後,右邊補0 為1110
轉為10進制為 14
demo2
public class DemoBit {
public static void main(String[] args) {
System.out.println(5|1);//5
System.out.println(3|2);//3
}
}
上例中 5 和 1 轉為二進制如下
5 0101
1 0001
5 0101
對應的位中只要有1 結果為1
demo3
public class DemoBit {
public static void main(String[] args) {
System.out.println(7^4);//3
}
}
7和4的二進制如下
7 0111
4 0100
3 0011
對應位值相同為0不同為1
運算符的優先級
優先級順符由高到低是
小括號 > 算數運算符 > 比較運算符 > 邏輯運算符 > 賦值運算符
試一試
- 將一個整數除以2或乘2而不使用
+ - * /
,如何實現?
搜索關註公眾號「享智同行」,第一時間獲取技術幹貨
回復"006"獲取答案
Java入門系列-06-運算符