天天看點

《Java 7程式設計入門經典》一2.7 算術運算符

基本的算術運算符集在第1章中已經介紹。下面是完整的算術運算符:

《Java 7程式設計入門經典》一2.7 算術運算符

在java中,運算符+、-、*、/和在其他計算機語言或代數裡的用法相同。它們可以用于所有内置的數值資料類型。它們也能用于char類型的對象。

盡管所有讀者都對算術運算符很了解,但是還要需要講解一些特殊情況。首先,記住當除法(/)用于任何整數運算時,餘數部分都将截斷。例如,在整數除法中,10/3等于3。可以用求模運算符%來獲得這個除法的餘數。求模運算符用來獲得整數除法的餘數。例如,10%3等于1。在java中,運算符%既可以用于整數類型,也可以用于浮點類型。于是,10.0%3.0也是1。下面的程式說明了求模運算符的用法:

《Java 7程式設計入門經典》一2.7 算術運算符

程式的輸出如下所示:

《Java 7程式設計入門經典》一2.7 算術運算符

可以看到,運算符%對于整數和浮點數都生成餘數1。

遞增運算符和遞減運算符

在第一章中曾經介紹,++和--是java的遞增運算符和遞減運算符。将會看到,它們有一些有趣的屬性。首先來看看遞增運算符和遞減運算符到底有什麼功能。

遞增運算符使操作數加1,遞減運算符使操作數減1。于是,

《Java 7程式設計入門經典》一2.7 算術運算符

相同。遞增運算符和遞減運算符都既可以放在操作數前面,也可以放在操作數後面。例如,

《Java 7程式設計入門經典》一2.7 算術運算符

在上面的例子中,遞增運算符放在操作數前面還是後面沒有差別。但是,當遞增運算符或遞減運算符是一個更大的表達式的一部分時,就有明顯的差別。當遞增運算符或遞減運算符在操作數前面時,java先執行相應的遞增或遞減操作,在将獲得的值用于表達式剩餘部分的計算。如果運算符在操作數後面,java會先擷取操作數的值,然後再遞增或遞減它。考慮下面的代碼:

《Java 7程式設計入門經典》一2.7 算術運算符

那麼y是10。在以上兩個例子中,x都是11。差別在于遞增運算符和遞減運算符發生的時機。在複雜的算術表達式中,能夠控制遞增運算符和遞減運算符的發生有重大作用。