Java的基本算術運算符與其他大多數程序設計語言是相同的。其中包括加號(+)、減號(-)、除號(/)、乘號(*)以及模數(%,從整數除法中獲得余數)。整數除法會直接砍掉小數,而不是進位。
Java也用一種簡寫形式進行運算,並同時進行賦值操作。這是由等號前的一個運算符標記的,而且對於語言中的所有運算符都是固定的。例如,為了將4加到變量x,並將結果賦給x,可用:x+=4。
下面這個例子展示了算術運算符的各種用法:
//: MathOps.java
// Demonstrates the mathematical operators
import java.util.*;
public class MathOps {
// Create a shorthand to save typing:
static void prt(String s) {
System.out.println(s);
}
// shorthand to print a string and an int:
static void pInt(String s, int i) {
prt(s + " = " + i);
}
// shorthand to print a string and a float:
static void pFlt(String s, float f) {
prt(s + " = " + f);
}
public static void main(String[] args) {
// Create a random number generator,
// seeds with current time by default:
Random rand = new Random();
int i, j, k;
// '%' limits maximum value to 99:
j = rand.nextInt() % 100;
k = rand.nextInt() % 100;
pInt("j",j); pInt("k",k);
i = j + k; pInt("j + k", i);
i = j - k; pInt("j - k", i);
i = k / j; pInt("k / j", i);
i = k * j; pInt("k * j", i);
i = k % j; pInt("k % j", i);
j %= k; pInt("j %= k", j);
// Floating-point number tests:
float u,v,w; // applies to doubles, too
v = rand.nextFloat();
w = rand.nextFloat();
pFlt("v", v); pFlt("w", w);
u = v + w; pFlt("v + w", u);
u = v - w; pFlt("v - w", u);
u = v * w; pFlt("v * w", u);
u = v / w; pFlt("v / w", u);
// the following also works for
// char, byte, short, int, long,
// and double:
u += v; pFlt("u += v", u);
u -= v; pFlt("u -= v", u);
u *= v; pFlt("u *= v", u);
u /= v; pFlt("u /= v", u);
}
} ///:~
我們注意到的第一件事情就是用於打印(顯示)的一些快捷方法:prt()方法打印一個String;pInt()先打印一個String,再打印一個int;而pFlt()先打印一個String,再打印一個float。當然,它們最終都要用System.out.println()結尾。
為生成數字,程序首先會創建一個Random(隨機)對象。由於自變量是在創建過程中傳遞的,所以Java將當前時間作為一個“種子值”,由隨機數生成器利用。通過Random對象,程序可生成許多不同類型的隨機數字。做法很簡單,只需調用不同的方法即可:nextInt(),nextLong(),nextFloat()或者nextDouble()。
若隨同隨機數生成器的結果使用,模數運算符(%)可將結果限制到運算對象減1的上限(本例是99)之下。
1. 一元加、減運算符
一元減號(-)和一元加號(+)與二元加號和減號都是相同的運算符。根據表達式的書寫形式,編譯器會自動判斷使用哪一種。例如下述語句:
x = -a;
它的含義是顯然的。編譯器能正確識別下述語句:
x = a * -b;
但讀者會被搞糊塗,所以最好更明確地寫成:
x = a * (-b);
一元減號得到的運算對象的負值。一元加號的含義與一元減號相反,雖然它實際並不做任何事情。