java的算术运算符2007-05-27 yycnet.yeah.net yyc译Java的基本算术运算符与其他大多数程序设计语言是相同的。其中包括加号(+)、减号(-)、除号(/)、乘号(*)以及模数(%,从整数除法中获得余数)。整数除法会直接砍掉小数,而不是进位。
Java也用一种简写形式进行运算,并同时进行赋值操作。这是由等号前的一个运算符标记的,而且对于语言中的所有运算符都是固定的。例如,为了将4加到变量x,并将结果赋给x,可用:x+=4。
下面这个例子展示了算术运算符的各种用法:
//: MathOps.java// Demonstrates the mathematical operatorsimport 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, toov = 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);
一元减号得到的运算对象的负值。一元加号的含义与一元减号相反,虽然它实际并不做任何事情。