Java(六)運算符和表達式


第二章 Java的數據類型


    ======================================
    ===>>>   第三章  Java的運算符和表達式   <<<===
    ======================================

    §3-1 運算符

    一、對於C/C++來說,Java中的運算符號並沒有做多大改動,在稱謂上面,由C/C++裏面的“目”改成

了“元”。比如說:在C++裏面叫做“三目運算符”的?:,在Java裏面叫做“三元運算符”。

    同樣,Java是允許進行自加(i++或者++i)和自減(j--或者--j)運算的。

    二、Java的運算符歸納如下:

    1、算術運算符 ( + 、- 、* 、/ 、% 、++ 、-- )

    2、關係運算符 ( > 、< 、>= 、<= 、== 、!= )

    3、布爾邏輯運算符 ( ! 、&& 、|| )

    4、位運算符 ( >> 、<<、>>> 、& 、| 、^ 、~ )

    5、賦值運算符 ( = 、及其擴展賦值運算符如:+= )

    6、條件運算符 ( ?: )

    7、其它(包括分量運算符·,下標運算符[],實例運算符instance of,內存分配運算符new,強制

類型轉換運算符(類型),方法調用運算符()等)


    §3-2 算術運算符

    一、一元算術運算符

運算符     用法     描述

  +        +op      正值

  -        -op      負值

  ++    ++op,op++    加1

  --    --op,op--    減1

    二、二元算術運算符

運算符     用法     描述

  +      op1+op2     加

  -      op1-op2     減

  *      op1*op2     乘

  /      op1/op2     除

  %      op1%op2  取模(求餘)

    Java對加運算符進行了擴展,使它能夠進行字符串的連接,如"abc"+"de",得到串"abcde"。

    與C/C++不同,對取模運算符%來說,其操作數可以爲浮點數37.2%10=7.2。

    下面的例子說明了算術運算符的使用:

public class ArithmaticOp
{
      public static void main( String args[] )
      {
            int a=5+4;     //a=9
            int b=a*2;     //b=18
            int c=b/4;     //c=4
            int d=b-c;     //d=14
            int e=-d;      //e=-14
            int f=e%4;     //f=-2
            double g=18.4;
            double h=g%4;  //h=2.4
            int i=3;
            int j=i++;     //i=4,j=3
            int k=++i;     //i=5,k=5
            System.out.println("a = "+a);
            System.out.println("b = "+b);
            System.out.println("c = "+c);
            System.out.println("d = "+d);
            System.out.println("e = "+e);
            System.out.println("f = "+f);
            System.out.println("g = "+g);
            System.out.println("h = "+h);
            System.out.println("i = "+i);
            System.out.println("j = "+j);
            System.out.println("k = "+k);
      }
}

    其結果爲:

C:/>java ArithmaticOp

a = 9

b = 18

c = 4

d = 14

e = -14

f = -2

g = 18.4

h = 2.4

i = 5

j = 3

k = 5

 

    § 3-3 關係運算符

運算符     用法     返回true的情況

  >     op1>op2     op1大於op2

  >+    op1>=op2    op1大於或等於op2

  <     op1<op2     op1小於op2

  <=    op1<=op2    op1小於或等於op2

  ==     op1==op2     op1與op2相等

  !=     op1!=op2     op1與op2不等

    和C/C++相比,Java中的何數據類型的數據(包括基本類型和組合類型)都可以通過“==”或“!=”

來比較是否相等。

    關係運算的結果返回true或false,而不是C/C++中的1或0。

    關係運算符常與布爾邏輯運算符一起使用,作爲流控制語句的判斷條件。如:if( a>b && b==c)

 

    § 3-4 布爾邏輯運算符

 op1     op2     op1&&op2     op1||op2     !op1

false   false     false        false       true

false   true      false        true        true

true    false     false        true        false

true    true      true         true        false

    ·&&、‖爲二元運算符,實現邏輯與、邏輯或。

    ·!爲一元運算符,實現邏輯非。

    ·對於布爾邏輯運算,先求出運算符左邊的表達式的值,對或運算如果爲true,則整個表達式的結果爲true,不必對運算符右邊的表達式再進行運算;同樣,對與運算,如果左邊表達式的值爲false,則不必對右邊的表達式求值,整個表達式的結果爲false。

    下面的例子說明了關係運算符和布爾邏輯運算符的使用。

public class RelationAndConditionOp{

     public static void main( String args[] ){

          int a=25,b=3;

          boolean d=a<b;      //d=false

          System.out.println("a<b = "+d);

          int e=3;

          if(e!=0 && a/e>5)

               System.out.println("a/e = "+a/e);

          int f=0;

          if(f!=0 && a/f>5)

               System.out.println("a/f = "+a/f);

          else

          System.out.println("f = "+f);

     }

}

    其運行結果爲:

C:/>java RelationAndConditionOp

a<b = false

a/e = 8

f = 0

    注意:上例中,第二個if語句在運行時不會發生除0溢出的錯,因爲e!=0爲false,所以就不需要對a/e進行運算。

 

    § 3-5 位運算符

    位運算符用來對二進制位進行操作,Java中提供瞭如下的位運算符:

    位運算符中,除“~”以 外,其餘均爲二元運算符。

    操作數只能爲整型和字符型數據。

    3-4-1 補碼

    Java使用補碼來表示二進制數,在補碼錶示中,最高位爲符號位,正數的符號位爲0,負數爲1。補碼

的規定如下:

    對正數來說,最高位爲0,其餘各位代表數值本身(以二進制提示),如+42的補碼爲00101010。

    對負數而言,把該數絕對值的補碼按位取反,然後對整個數

    1、即得該數的補碼。如:

    -42的補碼爲11010110(00101010按位取反11010101 +1 11010110 )

    用補碼來表示數,0的補碼是唯一的,都 爲00000000。(而在原碼,反碼錶示中,+0和-0的表示是不

唯一的,可參見相應的書籍)而且可以用111111表示-1的補碼)這也是補碼與原碼和反碼的區別)。

    3-4-2 按位取反運算符 ~

    ~ 是一元運算法,對數據的每個二進制位取反,即把1變爲0,把0變爲1。

    例如 :

0010101 
~ 
1101010

    注意,運算符與-運算符不同,~21≠-21。

    3-4-3 按位與運算符&

    參與運算的兩個值,如果兩個相應位都爲1,則該位的結果爲1,例如:

0010101 
~ 
1101010

    注意,~運算符與-運算符不同,~21≠-21。

    3-4-3  按位與運算符&

    參與運算的兩個值,如果兩個相應位都爲1,則該位的結果爲1,否則爲0。即:

    0 & 0 = 0 ;0 & 1 = 0 ;1 & 0 = 0 ;1 & 1 = 1 ;


第四章 Java的流控制

發佈了7 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章