算术操作符(Mathematical operator)

时间:2022-11-21 17:48:29
Java 的基本算术操作符与其他大多数程序设计语言是相同的。其中包括加号(+)、减号(-)、
除号(/)、乘号(*)以及模数(%,从整数除法中获得余数)。整数除法会直接去掉结果的
小数位,而不是四舍五入的进位。


Java 也使用一种简化符号同时进行运算与赋值操作。它用操作符后紧跟一个等号来表示,
这对于 Java 中的所有操作符都适用,只要其有实际意义就行。例如,要将 x 加 4,并将结
果赋回给 x,可以这么写:x+=4。


下面这个例子展示了各种算术操作符的用法:




//: c03:MathOps.java
// Demonstrates the mathematical operators.
import com.bruceeckel.simpletest.*;
import java.util.*;




public class MathOps {
static Test monitor = new Test();
  // Shorthand to print a string and an int:
static void printInt(String s, int i) {
    System.out.println(s + " = " + i);
  } 
  // Shorthand to print a string and a float:
static void printFloat(String s, float f) {
    System.out.println(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;
    // Choose value from 1 to 100:
    j = rand.nextInt(100) + 1;
    k = rand.nextInt(100) + 1;
    printInt("j", j);  printInt("k", k);
    i = j + k; printInt("j + k", i);
    i = j - k; printInt("j - k", i);
    i = k / j; printInt("k / j", i);
    i = k * j; printInt("k * j", i);
    i = k % j; printInt("k % j", i);
 








    j %= k; printInt("j %= k", j);
    // Floating-point number tests:
float u,v,w;  // applies to doubles, too
    v = rand.nextFloat();
    w = rand.nextFloat();
    printFloat("v", v); printFloat("w", w);
    u = v + w; printFloat("v + w", u);
    u = v - w; printFloat("v - w", u);
    u = v * w; printFloat("v * w", u);
    u = v / w; printFloat("v / w", u);
    // the following also works for
    // char, byte, short, int, long,
    // and  double:
    u += v; printFloat("u += v", u);
    u -= v; printFloat("u -= v", u);
    u *= v; printFloat("u *= v", u);
    u /= v; printFloat("u /= v", u);
    monitor.expect(new String[] {
"%% j = -?\\d+",
"%% k = -?\\d+",
"%% j \\+ k = -?\\d+",
"%% j - k = -?\\d+",
"%% k / j = -?\\d+",
"%% k \\* j = -?\\d+",
"%% k % j = -?\\d+",
"%% j %= k = -?\\d+",
"%% v = -?\\d+\\.\\d+(E-?\\d)?",
"%% w = -?\\d+\\.\\d+(E-?\\d)?",
"%% v \\+ w = -?\\d+\\.\\d+(E-?\\d)??",
"%% v - w = -?\\d+\\.\\d+(E-?\\d)??",
"%% v \\* w = -?\\d+\\.\\d+(E-?\\d)??",
"%% v / w = -?\\d+\\.\\d+(E-?\\d)??",
"%% u \\+= v = -?\\d+\\.\\d+(E-?\\d)??",
"%% u -= v = -?\\d+\\.\\d+(E-?\\d)??",
"%% u \\*= v = -?\\d+\\.\\d+(E-?\\d)??",
"%% u /= v = -?\\d+\\.\\d+(E-?\\d)??"
    });
  } 
} ///:~


首先注意用于打印的一些便捷方法:printInt() 方法先打印一个 String, 再打印一个 int;而
printFloat() 先打印一个 String,再打印一个 float。


为了生成数字,程序首先会创建一个 Random 类的对象。由于在创建过程中没有传递任何参
 






数,所以 Java 将当前时间作为随机数生成器的种子。通过 Random 类的对象,程序可生成
许多不同类型的随机数字。做法很简单,只需调用不同的方法即可:nextInt(),nextFloat (),
(你也可以调用 nextLong () 或者 nextDouble())。


当使用随机数生成器产生的结果时,取模运算(%)可将结果限制在上限为运算对象最大值

减 1 的范围内

算术操作符(Mathematical operator)