算術運算符

發表于:2007-07-14來源:作者:點擊數: 標簽:
Java 提供了豐富的運算符環境。Java 有4大類運算符:算術運算、位運算、關系運算和邏輯運算。Java 還定義了一些附加的運算符用于處理特殊情況。本章將描述Java 所有的運算符,而比較運算符instanceof 將在第12章討論。 注意:如果你對C/C++ 熟悉,你將會高興

Java 提供了豐富的運算符環境。Java 有4大類運算符:算術運算、位運算、關系運算和邏輯運算。Java 還定義了一些附加的運算符用于處理特殊情況。本章將描述Java 所有的運算符,而比較運算符instanceof 將在第12章討論。

注意:如果你對C/C++ 熟悉,你將會高興,因為Java 的絕大多數運算符和C/C++ 中的用法一樣。但有一些微妙的差別,所以提醒你要仔細閱讀。

算術運算符用在數學表達式中,其用法和功能與代數學(或其他計算機語言)中一樣,Java 定義了下列算術運算符(見表4-1):

運算符含義

+ 加法
– 減法(一元減號)
*
乘法/ 除法% 模運算++ 遞增運算+= 加法賦值–= 減法賦值
*=
乘法賦值/= 除法賦值%= 模運算賦值--遞減運算
算術運算符的運算數必須是數字類型。算術運算符不能用在布爾類型上,但是可以用在char類型上,因為實質上在Java 中,char類型是int 類型的一個子集。

4.1.1 基本算術運算符
基本算術運算符——加、減、乘、除可以對所有的數字類型操作。減運算也用作表示單個操作數的負號。記住對整數進行“/”除法運算時,所有的余數都要被舍去。下面這個簡單例子示范了算術運算符,也說明了浮點型除法和整型除法之間的差別。

// 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);

}
}

當你運行這個程序,你會看到輸出如下:

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 模運算符
模運算符%,其運算結果是整數除法的余數。它能像整數類型一樣被用于浮點類型(這不同于C/C++ ,在C/C++ 中模運算符%僅僅能用于整數類型)。下面的示例程序說明了模運算符%的用法:
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);
}
}

當你運行這個程序,你會看到輸出如下:

x mod 10 = 2
y mod 10 = 2.25

4.1.3 算術賦值運算符
Java 提供特殊的算術賦值運算符,該運算符可用來將算術運算符與賦值結合起來。你可能知道,像下列這樣的語句在編程中是很常見的:

a = a +4;

在Java 中,你可將該語句重寫如下:

a += 4;

該語句使用“+=”進行賦值操作。上面兩行語句完成的功能是一樣的:使變量a的值增加4 。下面是另一個例子:

a = a % 2;

該語句可簡寫為:

a %= 2;

在本例中,%=算術運算符的結果是a/2的余數,并把結果重新賦給變量a。這種簡寫形式對于Java 的二元(即需要兩個操作數的)運算符都適用。其語句格式為:

var= var op expression;

可以被重寫為:

var op= expression;

這種賦值運算符有兩個好處。第一,它們比標準的等式要緊湊。第二,它們有助于提高Java 的運行效率。由于這些原因,在Java 的專業程序中,你經常會看見這些簡寫的賦值運算符。

下面的例子顯示了幾個賦值運算符的作用:

// Demonstrate several assignment operators.
class OpEquals {

public static void main(String args[]) {
int a = 1;
int b = 2;
int c = 3;
a += 5;
b *= 4;
c += a * b;
c %= 6;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);

}
}

該程序的輸出如下:

a = 6
b = 8
c = 3

4.1.4 遞增和遞減運算
在第2章中曾經介紹過,“++”和“--”是Java 的遞增和遞減運算符。下面將對它們做詳細討論。它們具有一些特殊的性能,這使它們變得非常有趣。我們先來復習一下遞增和遞減運算符的操作。

遞增運算符對其運算數加1,遞減運算符對其運算數減1。因此:

x = x + 1;

運用遞增運算符可以重寫為:

x++;

同樣,語句:

x = x - 1;

與下面一句相同:

x--;

在前面的例子中,遞增或遞減運算符采用前綴(prefix )或后綴(postfix )格式都是相同的。但是,當遞增或遞減運算符作為一個較大的表達式的一部分,就會有重要的不同。如果遞增或遞減運算符放在其運算數前面,Java 就會在獲得該運算數的值之前執行相應的操作,并將其用于表達式的其他部分。如果運算符放在其運算數后面,Java 就會先獲得該操作數的值再執行遞增或遞減運算。例如:

x = 42 ;
y =++x ;

在這個例子中,y將被賦值為43,因為在將x的值賦給y以前,要先執行遞增運算。這樣,語句行y =++x ; 和下面兩句是等價的:

x = x + 1;
y = x;

但是,當寫成這樣時:
x = 42;
y = x++;

在執行遞增運算以前,已將x的值賦給了y,因此y的值還是42 。當然,在這兩個例子中,x都被賦值為43。在本例中,程序行y =x++ ;與下面兩個語句等價:

y = x;
x = x + 1;

下面的程序說明了遞增運算符的使用:

// Demonstrate ++.
class IncDec {

public static void main(String args[]) {
int a = 1;
int b = 2;
int c;
int d;
c = ++b;
d = a++;
c++;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);

}
}

該程序的輸出如下:

a = 2
b = 3
c = 4
d = 1

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97