運算符號


運算符號

算術運算符:+,-,*,/,%(余數),++(自增),--(自減)

賦值運算符:=

關系運算符:>,<,>=,<=,==,!= instanceof

邏輯運算符:&&,||,!(與,或,非)

位運算符:&,|,^,~,>>,<<,>>>

條件運算符:?,:

擴轉賦值運算符:+=,-=,*=,/=

 

加減乘除

操作時需要注意運算結果是否會有浮點數

計算中,如果有高級的數據類型參與,那計算出來的結果類型,一定是最高的那個數據類型,默認為int類型

public class Dem1 {
   public static void main(String[] args) {
       //二元運算符
       int a = 10;
       byte b = 20;
       int c = 25;
       long d = 25;//long類型是他們中最高的類型,所有有long類型參與的計算,結果都為long,否則就默認int類型

       System.out.println(a+b);//結果為 30
       System.out.println(a-c);//結果為-15
       System.out.println(d*b);//有d參與,為long類型,結果為500
       System.out.println(a/(double)b);//結果為小數,所以要把int類型強轉double。結果為0.5
       System.out.println(c%a)//c除以a的余數是5,所以結果為5
  }
}

關系運算

在關系運算符中,大於,小於,等於和不等於是用布爾值的false和true來輸出結果。

public class Dem3 {
   public static void main(String[] args) {
       //關系運算符的返回結果: 正確,錯誤 (布爾值)
       int a=10;
       int b=20;
       int c=21;

       System.out.println(a>b);//大於   false
       System.out.println(a<b);//小於     true
       System.out.println(a==b);//是否相等   false
       System.out.println(a!=b);//是否不相等   true
  }
}

自增,自減

++,--,被叫做自增,自減。以自增為例,一個自增相當於加1,當一個變量a,在++a和a++兩種表達時,算法的路徑會不一樣。++a是先計算,再賦值。a++是先賦值,再計算。在一個方法中,++會從上到下積累,在輸出句之前出現多少次++,最后的a就會加了多少個1。自減同理

public class Dem4 {
   public static void main(String[] args) {
       //++ -- 自增,自減 一元運算符
       int a = 3;//給a賦初始值
       int b = a++;//先把a的值賦給b后a再+1
       System.out.println(a);//輸出a等於4
       int c = ++a;//先+1后再給c賦值,就是4+1,再賦值給c。
       //此時c的值是上面a++得到的值4,再以4的值以++a計算后得到5
       System.out.println(a++);//得到值為5
       System.out.println(a);//得到值為6,
       System.out.println(b);//得到值為3
       System.out.println(c);//得到值為5
       //冪運算的寫法
       double pow=Math.pow(3,2);
       System.out.println(pow);//得出結果9.0
  }
}

邏輯運算

&& || !稱為與,或,非。以布爾值進行運算。 與 是代表A與B,或 是代表A或者B,非代表取反,正為負,負為正。

與在計算時,需要A與B都為真,結果才為真。如在第一個變量就檢測出為假,則不作后面的運算,直接為假

或在計算時,A或者B有一個為真,則結果為真。如在第一個變量檢測出為真,則不作后面的運算,直接為真

非在計算時,如計算結果為真,則輸出為假。結果為假,則輸出為真。

短路運算

求證 “與”“或”在運算時,檢測到第一個變量為假,或者真時,就不會再對后面的變量進行運算

public class Dem5 {
   public static void main(String[] args) {
       //邏輯與運算   與 或 非
       boolean a = true;
       boolean b =false;

       System.out.println("a && b:"+(a&&b));//與:兩個變量都為真,結果才為true
       System.out.println("a || b:"+(a||b));//或:其中一個變量為真,結果就為true
       System.out.println("!(a&&b):"+!(a&&b));//如結果為真,則變為假。為假則變為真

       //短路運算:
       int c = 5;
       boolean d =(c<4)&&(c++<4);
       //運算:c小於4為錯誤,在&&之前就被系統檢測到false,所以不執行后面的c++變量
       System.out.println(d);//結果為false
       System.out.println(c);//結果為5 則證明在&&之前就短路了
  }
}

位運算

& 與 | 或 ^亦或 ~取反 <<左移 >>右移 用於二進制邏輯運算

A = 0011 0110

B = 1010 0100

A&B =010 0100(兩個都為1,結果才為1)

A|B = 1011 0110(有一個為1,結果就為1)

A^B = 1001 0010(相同則為0,不同則為1)

~B = 0101 1011(和原本的數字相反)

左移和右移<< >>

0000 0000 0

0000 0001 1

0000 0010 2

0000 0011 3

0000 0100 4

0000 0101 5

0000 0110 6

0000 0111 7

0000 1000 8

0000 1001 9

.......

0001 0000 16

由此可以看出,左移<<相當於*2,右移>>相當於/2

public class Dem6 {
   public static void main(String[] args) {
       System.out.println(2<<3);//輸出結果為16
       System.out.println(16>>3);//輸出結果為2
  }
}

擴展賦值運算符

+=,-=,*=,/= +=是求和,如 a+=b,就是代表a=a+b。但求出的數值會累積疊加,這里和自增自減相同,在一個方法里面,輸出語句之上的變量都會疊加。另外三個運算符也是同理。

public class Dem7 {
   public static void main(String[] args) {
       int a = 10;//給a賦初始值
       int b = 20;//給B賦初始值
       a+=b;
       System.out.println(a);//結果為30 a的10+b的20
       b+=a;
       System.out.println(b);//結果為50   b的20+a的30
       a*=b;
       System.out.println(a);//結果為1500 a的30*b的50
        System.out.println(""+a+b);//輸出結果為150050
//在該運算符兩側,只要有前面出現了String類型,就會把其它類型都轉換為String類型再進行連接,所以得出結果為1020
  }
}

三元運算符

? : 為三元運算符

舉例 a ? b : c

如果a為真,結果就為b,如果為假,則結果為c

package operator;
//三元運算符
public class Dem8 {
   public static void main(String[] args) {
       int score = 59;
       String t = score<60?"不及格":"及格";
       System.out.println(t);//score<60 為真,結果為"不及格"
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM