計(jì)算機(jī)等級(jí)二級(jí)JAVA算術(shù)運(yùn)算符

字號(hào):

Java 提供了豐富的運(yùn)算符環(huán)境。Java 有4大類(lèi)運(yùn)算符:算術(shù)運(yùn)算、位運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算。Java 還定義了一些附加的運(yùn)算符用于處理特殊情況。本章將描述Java 所有的運(yùn)算符,而比較運(yùn)算符instanceof 將在第12章討論。
    注意:如果你對(duì)C/C++ 熟悉,你將會(huì)高興,因?yàn)镴ava 的絕大多數(shù)運(yùn)算符和C/C++ 中的用法一樣。但有一些微妙的差別,所以提醒你要仔細(xì)閱讀。
    算術(shù)運(yùn)算符用在數(shù)學(xué)表達(dá)式中,其用法和功能與代數(shù)學(xué)(或其他計(jì)算機(jī)語(yǔ)言)中一樣,Java 定義了下列算術(shù)運(yùn)算符(見(jiàn)表4-1):
    運(yùn)算符含義
    + 加法
    – 減法(一元減號(hào))
    *
    乘法/ 除法% 模運(yùn)算++ 遞增運(yùn)算+= 加法賦值–= 減法賦值
    *=
    乘法賦值/= 除法賦值%= 模運(yùn)算賦值--遞減運(yùn)算
    算術(shù)運(yùn)算符的運(yùn)算數(shù)必須是數(shù)字類(lèi)型。算術(shù)運(yùn)算符不能用在布爾類(lèi)型上,但是可以用在char類(lèi)型上,因?yàn)閷?shí)質(zhì)上在Java 中,char類(lèi)型是int 類(lèi)型的一個(gè)子集。
    4.1.1 基本算術(shù)運(yùn)算符
    基本算術(shù)運(yùn)算符——加、減、乘、除可以對(duì)所有的數(shù)字類(lèi)型操作。減運(yùn)算也用作表示單個(gè)操作數(shù)的負(fù)號(hào)。記住對(duì)整數(shù)進(jìn)行“/”除法運(yùn)算時(shí),所有的余數(shù)都要被舍去。下面這個(gè)簡(jiǎn)單例子示范了算術(shù)運(yùn)算符,也說(shuō)明了浮點(diǎn)型除法和整型除法之間的差別。
    // Demonstrate the basic arithmetic operators.
    class BasicMath {
    public static void main(String args[]) {
    // arithmetic using integers
    System.out.println("Integer Arithmetic");
    int a = 1 + 1;
    int b = a * 3;
    int c = b / 4;
    int d = c - a;
    int e = -d;
    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);
    // arithmetic using doubles
    System.out.println("\nFloating Point Arithmetic");
    double da = 1 + 1;
    double db = da * 3;
    double dc = db / 4;
    double dd = dc - a;
    double de = -dd;
    System.out.println("da = " + da);
    System.out.println("db = " + db);
    System.out.println("dc = " + dc);
    System.out.println("dd = " + dd);
    System.out.println("de = " + de);
    }
    }
    當(dāng)你運(yùn)行這個(gè)程序,你會(huì)看到輸出如下:
    Integer Arithmetic
    a = 2
    b = 6
    c = 1
    d = -1
    e = 1
    Floating Point Arithmetic
    da = 2.0
    db = 6.0
    dc = 1.5
    dd = -0.5
    de = 0.5
    4.1.2 模運(yùn)算符
    模運(yùn)算符%,其運(yùn)算結(jié)果是整數(shù)除法的余數(shù)。它能像整數(shù)類(lèi)型一樣被用于浮點(diǎn)類(lèi)型(這不同于C/C++ ,在C/C++ 中模運(yùn)算符%僅僅能用于整數(shù)類(lèi)型)。下面的示例程序說(shuō)明了模運(yùn)算符%的用法:
    class Modulus {
    public static void main(String args[]) {
    int x = 42;
    double y = 42.25;
    System.out.println("x mod 10 = " + x % 10);
    System.out.println("y mod 10 = " + y % 10);
    }
    }
    當(dāng)你運(yùn)行這個(gè)程序,你會(huì)看到輸出如下:
    x mod 10 = 2
    y mod 10 = 2.25
    4.1.3 算術(shù)賦值運(yùn)算符
    Java 提供特殊的算術(shù)賦值運(yùn)算符,該運(yùn)算符可用來(lái)將算術(shù)運(yùn)算符與賦值結(jié)合起來(lái)。你可能知道,像下列這樣的語(yǔ)句在編程中是很常見(jiàn)的:
    a = a +4;
    在Java 中,你可將該語(yǔ)句重寫(xiě)如下:
    a += 4;
    該語(yǔ)句使用“+=”進(jìn)行賦值操作。上面兩行語(yǔ)句完成的功能是一樣的:使變量a的值增加4 。下面是另一個(gè)例子:
    a = a % 2;
    該語(yǔ)句可簡(jiǎn)寫(xiě)為:
    a %= 2;
    在本例中,%=算術(shù)運(yùn)算符的結(jié)果是a/2的余數(shù),并把結(jié)果重新賦給變量a。這種簡(jiǎn)寫(xiě)形式對(duì)于Java 的二元(即需要兩個(gè)操作數(shù)的)運(yùn)算符都適用。其語(yǔ)句格式為:
    var= var op expression;
    可以被重寫(xiě)為:
    var op= expression;
    這種賦值運(yùn)算符有兩個(gè)好處。第一,它們比標(biāo)準(zhǔn)的等式要緊湊。第二,它們有助于提高Java 的運(yùn)行效率。由于這些原因,在Java 的專(zhuān)業(yè)程序中,你經(jīng)常會(huì)看見(jiàn)這些簡(jiǎn)寫(xiě)的賦值運(yùn)算符。