1. 程式人生 > >JAVA基礎(3)-運算符

JAVA基礎(3)-運算符

pan 就會 == void img 我們 font center 語言

運算符

再用運算符進行運算操作時有兩個原則:
1、不同類型的數據做運算時,一定會先轉換成較大範圍類型後再進行運算。
2、byte,short,char這些類型運算時,一定會先轉成int類型後再進行運算,結果int類型
一定要註意封閉式運算。

下表中具有最高優先級的運算符在的表的最上面,最低優先級的在表的底部。

技術分享圖片

算術運算符

+-*/%++--

編程中的+,-,*和我們平時用到的幾乎沒什麽區別,這裏就不介紹了

/ :除號
情況1:
參與的類型都是整型時,做取整運算,即商n余m, 結果為n,2/3----商0余2。結果為0(也就是運算結果只保留整數位)
情況2:
只要有一個浮點數參與,就會做類似精確運算(在除2時會是精確運算)。
%

:取余運算符號(也叫取模運算符號)
做除法運算時,商n余m,結果為m.

情況1:參與運算都是整數時,余數是精確值
情況2: 有浮點數參與時,余數不一定是精確值。

註意:
取余運算一般被用來判斷 某一個數能否被另外一個數整除。

被除數為正,取余結果一定為正
被除數為負,取余結果一定為負。
++ / --:自增自減運算符
符號要與變量一起使用。表示變量自動+1,或自動-1;
列:++a/a++/--a/a--;
++a/a++:是a=a+1的簡寫
--a/a--:是a=a-1的簡寫

情況1: 即與變量在一起,不與其他任何符號連用時
(單獨使用)
++a
a++
--a
a--
此時,變量一定會+1或-1;

情況2:自增/自減運算與其他符號連用時
需要考慮表達式的值。
++a/a++/--a/a--整體看成表達式

口訣:
符號在前,先運算再賦值
符號在後,先賦值在運算

解析:符號在前時,變量先自增/自減,新值賦值給表達式
符號在後時,先把變量的值賦值給表達式,然後變量再自增/自減

關系運算符

>>=<<===!= 它們所表達的意思與數學中的用法一致,用來判斷條件是否成立。一般都用在分支結構或循環結構中使用

邏輯運算符

當有兩個條件以上進行判斷是否成立時,需要使用邏輯運算符。即與,或,非 (&&,||,!)

數學中,判斷a是否大於1並且小於3時,寫法如下:1<a<3 java語言中,沒有上述寫法,需要使用&&寫法如下:a>1&&a<3或a<3&&a>1

&&(與):用於判斷兩個條件是否同時成立。(全真為真,一假則假)
||(或):用於判斷是否有條件成立。(一真即真,全假則假)
!(非):用於條件的否定。(非真即假,非假即真)

邏輯運算符又稱之為短路運算符,當使用&&或者||時,第一個條件能確定結果時,就不會執行第二個條件,這種行為可視為短路現象。(單個符號的 &(與) |(或) 沒有短路現象。)

賦值運算符

=賦值運算,給前面的變量賦值。

擴展:

+=,-=,*=,/=,%=
a+=1相當於 a = a + 1
a-=b相當於 a = a - b;
a*=b相當於 a = a * b;
a/=b相當於 a = a / b;
a%=b相當於 a = a % b;

字符串拼接符號

+: 當+前後,只要有一個是字符串類型,就做拼接操作,拼接後的結果是字符串類型。

練習代碼:

public static void main(String[] args) {
        
          int a = 1;
          int b = 2;
          String str = "3";
          String result = a+b+str;
          System.out.println(result);//"33"
          result = str+a+b;
          System.out.println(result);//"312"
          result = a+str+b;
          System.out.println(result);//"132"
          System.out.println(1+2+a+str+b+3);//"4323"
          System.out.println(1+2+a+"3"+a*b+str);//"4323"
    }

三目運算符

變量類型 變量= 條件表達式?值1:值2;
變量類型:需要與值1或值2的類型相同。如果值1與值2的類型不相同,則要可以自動轉換。

練習代碼:

public static void main(String[] args){
        /*
            找出num1 = 3,num2 = 5最大值
        */
        int num1 = 3,num2 = 5;
        int numMax = num1>num2? num1:num2;
        
        /*
           int a = 5,b = 10,c = 3;
           找出max,mid,min
        */
        int a = 5,b = 10,c = 3;
        
        int min = a<b? (a<c? a:c):(b<c? b:c);
        int max = a>b? (a>c? a:c):(b>c? b:c);
        int mid = a>b? (b>c? b:(a>c? c:a)):(a>c? a:(b>c? c:b));
        
        System.out.println("最小值:"+min);
        System.out.println("最大值:"+max);
        System.out.println("中間值:"+mid);
        
    }

JAVA基礎(3)-運算符