java的算术运算符
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);
一元减号获得的运算工具的负值。一元加号的寄义与一元减号相反,固然它实际并不做任何工作。