Java的基本算术运算符与其他大多数程序设计语言是相同的其中包括加号(+)减号()除号(/)乘号(*)以及模数(%从整数除法中获得余数)整数除法会直接砍掉小数而不是进位
Java也用一种简写形式进行运算并同时进行赋值操作这是由等号前的一个运算符标记的而且对于语言中的所有运算符都是固定的例如为了将加到变量x并将结果赋给x可用x+=
下面这个例子展示了算术运算符的各种用法
//: MathOpsjava
// Demonstrates the mathematical operators
import javautil*;
public class MathOps {
// Create a shorthand to save typing:
static void prt(String s) {
Systemoutprintln(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 :
j = randnextInt() % ;
k = randnextInt() % ;
pInt(jj); pInt(kk);
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);
// Floatingpoint number tests:
float uvw; // applies to doubles too
v = randnextFloat();
w = randnextFloat();
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()方法打印一个StringpInt()先打印一个String再打印一个int而pFlt()先打印一个String再打印一个float当然它们最终都要用Systemoutprintln()结尾
为生成数字程序首先会创建一个Random(随机)对象由于自变量是在创建过程中传递的所以Java将当前时间作为一个种子值由随机数生成器利用通过Random对象程序可生成许多不同类型的随机数字做法很简单只需调用不同的方法即可nextInt()nextLong()nextFloat()或者nextDouble()
若随同随机数生成器的结果使用模数运算符(%)可将结果限制到运算对象减的上限(本例是)之下
一元加减运算符
一元减号()和一元加号(+)与二元加号和减号都是相同的运算符根据表达式的书写形式编译器会自动判断使用哪一种例如下述语句
x = a;
它的含义是显然的编译器能正确识别下述语句
x = a * b;
但读者会被搞糊涂所以最好更明确地写成
x = a * (b);
一元减号得到的运算对象的负值一元加号的含义与一元减号相反虽然它实际并不做任何事情