Logo
Section 1 / 8

简单的 Java 数学运算

本节课介绍了Java中常用的基本运算符。例如,讲解了减法、加法、除法和乘法运算。

导入

简单的 Java 数学运算

本节课介绍了Java中常用的基本运算符。例如,讲解了减法、加法、除法和乘法运算。

介绍

Java中的数学运算非常简单。请记住,Java的数学运算遵循特定的顺序,与中学数学类似。

例如,乘法和除法优先于加法和减法。通过使用括号可以改变这些运算的执行顺序。

Java中的运算符

Java中的算术运算符如下所示。

符号算术运算符
+加法
-减法
/除法
*乘法
%取模(求余)
++后缀和前缀自增
--后缀和前缀自减

示例

让我们看看在Java编程中如何使用这些运算符。

1public class Operators { 2 public static void main(String[] args) { 3 int answer; 4 5 System.out.println("加法"); 6 int add = 20; 7 8 System.out.println("初始值: " + add); 9 answer = add + 2; 10 System.out.println("add + 2 = " + answer); 11 answer = add; 12 System.out.println("add = " + answer); 13 System.out.println(); 14 15 System.out.println("减法"); 16 int sub = 15; 17 18 System.out.println("初始值: " + sub); 19 System.out.println("sub - 4 = " + (sub - 4)); 20 System.out.println("sub = " + sub); 21 System.out.println(); 22 23 System.out.println("乘法"); 24 int mult = 25; 25 26 System.out.println("初始值: " + mult); 27 answer = mult * 3; 28 System.out.println("mult * 3 = " + answer); 29 answer = mult; 30 System.out.println("mult = " + mult); 31 System.out.println(); 32 33 System.out.println("整数除法"); 34 int div_int = 15; 35 36 System.out.println("初始值: " + div_int); 37 System.out.println("div_int / 2 = " + (div_int / 2)); 38 System.out.println("div_int = " + div_int); 39 System.out.println(); 40 41 System.out.println("取模(求余)"); 42 int rem = 5; 43 44 System.out.println("初始值: " + rem); 45 answer = rem % 2; 46 System.out.println("rem % 2 = " + answer); 47 answer = rem; 48 System.out.println("rem = " + answer); 49 System.out.println(); 50 51 System.out.println("自增(前置)"); 52 int pre_inc = 5; 53 54 System.out.println("初始值: " + pre_inc); 55 System.out.println("++pre_inc = " + (++pre_inc)); 56 System.out.println("pre_inc = " + pre_inc); 57 System.out.println(); 58 59 System.out.println("自减(前置)"); 60 int pre_dec = 5; 61 62 System.out.println("初始值: " + pre_dec); 63 answer = --pre_dec; 64 System.out.println("--pre_dec = " + answer); 65 answer = pre_dec; 66 System.out.println("pre_dec = " + answer); 67 System.out.println(); 68 69 System.out.println("自增(后置)"); 70 int post_inc = 5; 71 72 System.out.println("初始值: " + post_inc); 73 System.out.println("post_inc++ = " + (post_inc++)); 74 System.out.println("post_inc = " + post_inc); 75 System.out.println(); 76 77 System.out.println("自减(后置)"); 78 int post_dec = 5; 79 80 System.out.println("初始值: " + post_dec); 81 answer = post_dec--; 82 System.out.println("post_dec-- = " + answer); 83 answer = post_dec; 84 System.out.println("post_dec = " + answer); 85 System.out.println(); 86 } 87}

运算符优先级

运算符优先级决定了当表达式中包含多个运算符时,各运算的执行顺序。在数学运算中,优先级遵循BODMAS规则,即:括号、幂次、除法、乘法、加法、减法。下面通过一个例子来验证这一点!

为了演示,我们设定以下变量:x=5,y=10,z=7,w=6。现在用这些变量来计算下面的表达式。

  • (x - z) + y * y

    • 首先计算括号内的 (x - z),结果为 -2
    • 接着计算 y * y,根据BODMAS规则,乘法优先于加法,结果为 100
    • 最后计算 -2 + 100,结果为 98
  • w / y + (x * z)

    • 首先计算 x * z,结果为 35
    • 然后进行除法 w / y。注意,由于变量是整数类型,结果也会是整数,因此结果为 0(整型会向下取整)
    • 最后计算 0 + 35,结果为 35

现在让我们运行下面的代码,验证是否正确!

1public class Oper_Prec { 2 public static void main(String[] args) { 3 int x = 5; 4 int y = 10; 5 int z = 7; 6 int w = 6; 7 int answer; 8 9 System.out.println("x: " + x); 10 System.out.println("y: " + y); 11 System.out.println("z: " + z); 12 System.out.println("w: " + w); 13 14 System.out.println("计算包含多个运算符的表达式"); 15 16 System.out.println("(x-z) + y*y = " + ((x - z) + y * y)); 17 answer = (w / y + (x * z)); 18 19 System.out.println("w/y + (x*z) = " + answer); 20 } 21}

运算符结合性

运算符结合性决定了在表达式中,当多个运算符具有相同优先级时(如 1 + 2 - 5),它们将如何被计算。加法 + 和减法 - 具有左结合性。

  • x + y - z
    • 先计算 x + y,结果为 15
    • 然后计算 15 - 7,最终结果为 8

运行下面的代码,查看输出结果!

1public class Oper_Prec { 2 public static void main(String[] args) { 3 int x = 5; 4 int y = 10; 5 int z = 7; 6 int w = 6; 7 int answer; 8 9 System.out.println("x: " + x); 10 System.out.println("y: " + y); 11 System.out.println("z: " + z); 12 13 System.out.println("计算包含相同优先级运算符的表达式"); 14 15 answer = x + y - z; 16 17 System.out.println("x+y-z = " + answer); 18 } 19}

以下是Java运算符的结合性表(从高到低优先级)。

运算符描述结合性
+, -一元正负号从右到左
!, ~逻辑非和按位非从右到左
=直接赋值从右到左
+=, -=加法赋值和减法赋值从右到左
*=, /=, %=乘法赋值、除法赋值、取模赋值从右到左
<<=, >>=左移赋值和右移赋值从右到左
&=, ^=,=按位与赋值、异或赋值、或赋值
++, --后缀/后置自增和自减从右到左
*, /, %乘法、除法、取模从左到右
+, -加法、减法从左到右
<<, >>左移、右移从左到右
<, <=关系运算符从左到右
>, >=关系运算符从左到右
==, !=关系运算符从左到右
&按位与从左到右
^按位异或从左到右
&&逻辑与从左到右
||逻辑或从左到右
|按位或从左到右

变量与用户输入

数学函数