C語言中文網 目錄

Java算數運算符

< 上一頁Java數據類型 Java賦值運算符下一頁 >

運算符豐富是 Java 語言的主要特點之一,它提供的運算符數量之多,在高級語言中是少見的。

Java 語言中的運算符除了具有優先級之外,還有一個結合性的特點。當一個表達式中出現多種運算符時,執行的先后順序不僅要遵守運算符優先級別的規定,還要受運算符結合性的約束,以便確定是自左向右進行運算還是自右向左進行運算。這些運算符按照操作數的數量可以分為單目運算符、雙目運算符和三目運算符。

最基本的運算符包括算術運算符、賦值運算符、邏輯運算符和關系運算符等,本文將詳細介紹算數運算符。

Java 語言中算術運算符的功能是進行算術運算,除了經常使用的加(+)、減(-)、乘(*)和除(\)外,還有取模運算(%)。加(+)、減(-)、乘(*)、除(\)和我們平常接觸的數學運算具有相同的含義。求余運算(%)是指連接兩個變量或常量以進行除法運算,結果取它們的余數。

算術運算符都是雙目運算符,即連接兩個操作數的運算符。優先級上,*、/、% 具有相同運算級別,并高于 +、-(+、- 具有相同級別)。例如:
int a=4,b=2,c=3;
int d=a*(b+c)%c;

這種運算規則與數學運算中的規則是相同的。首先計算賦值符號(=)右邊配對的括號內的值,其次按從左向右的結合方向計算乘法,最后做求余運算,表達式的結果為 2, 然后把 2 賦值給 d。

進行算術運算時應注意以下兩點:
  • 求余(%)運算要求參與運算的兩個操作數均為整型,不能為其他類型。
  • 兩個整數進行除法運算,其結果仍為整數。如果整數與實數進行除法運算,則結果為實數。

例如:
①int x=2,y=1; 表達式 y/x 的結果是 0。
②float x=2.0f; int y=1; 表達式 y/x 的結果是 0.5。

在 ① 中整型變量 x 和 y 相除,其結果仍為整型數據 0;在 ② 中由于兩個不同類型的數據進行運算,此時首先要進行類型轉換,會把 int 型的 y 轉換成與 x 一樣的 float 型,然后相除,最終結果為 float 類型的數字 0.5。

【例1】編寫一個程序,輸出不同類型的兩個數,執行相加、相減、相乘、相除和求余后輸入結果。

實現代碼如下:
public static void main(String[] args)
{
    float fl=9%4;//保存取余后浮點類型的結果
    double da=9+4.5;    //雙精度加法
    double db=9-3.0;    //雙精度減法
    double dc=9*2.5;    //雙精度乘法
    double dd=9/3.0;    //雙精度除法
    double de=9%4;    //雙精度取余

    System.out.println(n整數的算術運算”);    //整數的加、減、乘、除和取余
    System.out.printf("9+4=%d \n",9+4);
    System.out.printf("9-4=%d \n",9-4);
    System.out.printf("9*4=%d \n",9*4);
    System.out.printf("9/4=%d \n",9/4);
    System.out.printf("9%%4=%d \n",9%4);

    System.out.println("\n浮點數的算術運算");    //浮點數的加、減、乘、除和取余
    System.out.printf("9+4.5f=%f \n",9+4.5f);
    System.out.printf("9-3.0f=%f \n",9-3.Of);
    System.out.printf("9*2.5f=%f \n",9*2.5f);
    System.out.printf("9/3.0f=%f \n",9/3.0f);
    System.out.printf("9%%4=%f \n",f1);

    System.out.printfln("\n雙精度數的算術運算");    //雙精度數的加、減、乘、除和取余
    System.out.printf("9+4.5=%4.16f \n",da);
    System.out.printf("9-3.0=%4.16f \n",db);
    System.out.printf("9*2.5=%4.16f \n",dc);
    System.out.printf("9/3.0=%4.16f \n",dd);
    System.out.printf("9%%4=%4.16f \n",de);

    System.out.println("\n字符的算術運算");    //對字符的加法和減法
    System.out.printf("'A'+32=%d \n",'A'+32);
    System.out.printf("'A'+32=%c \n",'A'+32);
    System.out.printf("'a'-'B'=%d \n",'a'-'B');
}

保存文件并運行,輸出的結果如下所示。
整數的算術運算
9+4=13
9-4=5
9*4=36
9/4=2
9%4=1
浮點數的算術運算
9+4.5f=13.500000
9-3.0f=6.000000
9*2.5f=22.500000
9/3.0f=3.000000
9%4=1.000000
雙精度數的算術運算
9+4.5=13.5000000000000000
9-3.0=6.0000000000000000
9*2.5=22.5000000000000000
9/3.0=3.0000000000000000
9%4=1.0000000000000000
字符的算術運算
'A'+32=97
'A'+32=a
'a'-'B'=31

本示例中使用了 4 種類型來執行算術運算。其中,整數類型的結果最容易理解,浮點型和雙精度型返回的結果都帶有小數,字符型將會把字符轉換為 ASCII 碼再運算。

從輸出結果中可以看到,整數之間的運算結果只保留整數部分,浮點型運算時保留 6 位小數部分,雙精度運算時則保留 16 位小數部分。

注意:Java 語言算術運算符的優先級是先乘除后加減。例如在表達式“a-b*c”中,b 的左側為減號,右側為乘號,而乘號優先級高于減號,因此該表達式可以轉換為“a-(b*c)”。

如果在一個表達式中的多個算術運算符的優先級別相同,例如“a-b+c”,此時將按照運算符的結合方向決定順序。算術運算符的結合方向都是“從左至右”,即先左后右。因此 b 先與減號結合,執行“a-b”的運算,再執行加 c 的運算。
< 上一頁Java數據類型 Java賦值運算符下一頁 >

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo