多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## [算术运算符](https://lingcoder.gitee.io/onjava8/#/book/04-Operators?id=%e7%ae%97%e6%9c%af%e8%bf%90%e7%ae%97%e7%ac%a6) Java 的基本算术运算符与其他大多编程语言是相同的。其中包括加号`+`、减号`-`、除号`/`、乘号`*`以及取模`%`(从整数除法中获得余数)。整数除法会直接砍掉小数,而不是进位。 Java 也用一种与 C++ 相同的简写形式同时进行运算和赋值操作,由运算符后跟等号表示,并且与语言中的所有运算符一致(只要有意义)。 可用 x += 4 来表示:将 x 的值加上4的结果再赋值给 x。更多代码示例: ~~~ // operators/MathOps.java // The mathematical operators import java.util.*; public class MathOps { public static void main(String[] args) { // Create a seeded random number generator: Random rand = new Random(47); int i, j, k; // Choose value from 1 to 100: j = rand.nextInt(100) + 1; System.out.println("j : " + j); k = rand.nextInt(100) + 1; System.out.println("k : " + k); i = j + k; System.out.println("j + k : " + i); i = j - k; System.out.println("j - k : " + i); i = k / j; System.out.println("k / j : " + i); i = k * j; System.out.println("k * j : " + i); i = k % j; System.out.println("k % j : " + i); j %= k; System.out.println("j %= k : " + j); // 浮点运算测试 float u, v, w; // Applies to doubles, too v = rand.nextFloat(); System.out.println("v : " + v); w = rand.nextFloat(); System.out.println("w : " + w); u = v + w; System.out.println("v + w : " + u); u = v - w; System.out.println("v - w : " + u); u = v * w; System.out.println("v * w : " + u); u = v / w; System.out.println("v / w : " + u); // 下面的操作同样适用于 char, // byte, short, int, long, and double: u += v; System.out.println("u += v : " + u); u -= v; System.out.println("u -= v : " + u); u *= v; System.out.println("u *= v : " + u); u /= v; System.out.println("u /= v : " + u); } } ~~~ 输出结果: ~~~ j : 59 k : 56 j + k : 115 j - k : 3 k / j : 0 k * j : 3304 k % j : 56 j %= k : 3 v : 0.5309454 w : 0.0534122 v + w : 0.5843576 v - w : 0.47753322 v * w : 0.028358962 v / w : 9.940527 u += v : 10.471473 u -= v : 9.940527 u *= v : 5.2778773 u /= v : 9.940527 ~~~ 为了生成随机数字,程序首先创建一个**Random**对象。不带参数的**Random**对象会利用当前的时间用作随机数生成器的“种子”(seed),从而为程序的每次执行生成不同的输出。在本书的示例中,重要的是每个示例末尾的输出尽可能一致,以便可以使用外部工具进行验证。所以我们通过在创建**Random**对象时提供种子(随机数生成器的初始化值,其始终为特定种子值产生相同的序列),让程序每次执行都生成相同的随机数,如此以来输出结果就是可验证的 \[^1\]。 若需要生成随机值,可删除代码示例中的种子参数。该对象通过调用方法`nextInt()`和`nextFloat()`(还可以调用`nextLong()`或`nextDouble()`),使用**Random**对象生成许多不同类型的随机数。`nextInt()`的参数设置生成的数字的上限,下限为零,为了避免零除的可能性,结果偏移1。