阅读完后:
- 什么是赋值运算符【掌握】
- 什么是算数运算符【掌握】
- 除法和求余的注意点【掌握】
- 自增、自减的使用【掌握】
- 什么是算术复合赋值运算符【掌握】
前言
变量的数据类型决定它可以包含的值以及该变量上可以执行的哪种运算。
运算符是一类特殊的符号,它们执行在多个运算对象上的特定操作,然后将会返回运算后的结果。
我们开始学习 Java 算数运算符,在开始学习 Java 算数运算符之前,我们先学习一下简单的赋值运算符。
简单的赋值运算符
简单赋值运算符以 “ = ” 表示,主要用于修改变量的数据内容,时我们最常见的运算符之一。它将右边的值指派给左边的运算对象。
示例代码如下:
int x = 5; // 将 5 赋值给 x
int x = y + 5; // 将 y + 5 的结果值赋值给 x
int z = x + y; // 将 x + y 的结果值赋值给 z
x = y = z = 7; // 将 7 赋值给 z、y、x
算数运算符
我们开始学习 Java 算数运算符,Java 中的算术运算符主要用来组织数值类型数据的算术运算。
使用算术运算符可对数值数据类型进行:+(加)、-(减)、*(乘)、/ (除)、%(求余)。
算数运算符是一种数学表达式,运算结果为数字,每个运算符都有两个操作数,一边一个,实现了整型数据类型和浮点数据类型之间的计算。
按照参加运算的操作数的不同可以分为一元运算符和二元运算符。
一元运算符
一元运算符只要求一个运算数。它可以执行多种操作,且一元操作符仅有一个运算数。例如加1、减1、否定表达式、反转布尔值等操作
-5,负号(-)可以认为是一元运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 正号,表示正值(没有该运算符都表示正数) | +10 |
- | 负号,求反运算符,实际将操作数与-1相乘 | -10 |
++ | 递增运算符,将值加 1 | ++a 或 a++ |
– | 递减运算符,将值减 1 | –a 或 a– |
+(正号),表示一个数据的正值,在编程中不常用。
二元运算符
二元操作符有两个运算数,其包括:+、-、*、/ 和 %。例如,4 - 5。在编程中加法、减法、乘法与我们理解的没差别。在这里,我们重点学习除法和求余。
运算符 | 含义 | 示例 | 运算结果 | 说明 |
---|---|---|---|---|
+ | 加法运算符 | 10 + 5 | 15 | 求 10 加 5 的和 |
- | 减法运算符 | 10 - 5.5 | 4.5 | 求 10 减 5.5 的差 |
* | 乘法运算符 | 10 * 5 | 50 | 求 10 乘以 5 的积 |
/ | 除法运算符 | 1.0 / 2.0 | 0.5 | 求 1.0 除以 2.0 的商 |
% | 求余(取模运算符) | 10 % 3 | 1 | 求 10 除以 3 的余数 |
除(/)
当除法的操作数都是整数时,除法的结果就是整数,小数部分被舍去,整除的结果可能与实际有差异。
示例公式如下:
10 / 3 = 3; // 都是整数
10.0 / 3 = 3.3333333333333335; // 10.0 为浮点数。
10 / 3.0 = 3.3333333333333335; // 3.0 为浮点数
注意:整除的结果与实际有差异,两个操作浮点类型的数值相除,结果是正无穷大或负无穷大
求余(%)
整数的求余操作(有时称为取模)用 % 表示。例如,15 / 2 等于 7, 15 % 2 等于 1。求余是返回除法操作的余数,求余操作符(%)通常用在正整数上。它将一个运算对象除以另一个运算对象并返回余数。
进行除数、求余时,应该确保操作数的类型与所需要结果的类型相同。
相除或求余的第二个操作数为 0 时
两个操作整数类型的数值相除或取余时,如果除数为 0(除数:第二个操作数),则在运行时将会产生异常。
示例公式如下:
int number = 5 / 0; // 运行的时候产生一个异常 / by zero
int numbers = 5 % 0; // 运行的时候产生一个异常 / by zero
当浮点数被 0 除将会得到无穷大(Infinity)的结果,浮点数被 0 求余将会得到 NaN 的结果。
自增&自减
自增与自减的操作数必须是整型或浮点型。
自增(++)
自增就是将自身加 1。
int x = 1;
x++ // 可转换为 x = x + 1;
自减(–)
自减就是将自身减 1。
int x = 1;
x-- // 可转换为 x = x - 1;
自增自减的区别
在使用自增、自减时,我们可以将它们放在操作数前面或者后面,在比较复杂的表达式中,自增/自减运算符的版本选择可能会造成很大的差异。下面我们学习它们的区别:
int x = 10;
System.out.println("x =" + x);
System.out.println("x++ =" + x++); // 使用 x 之后,再使 x 的值加 1
System.out.println("x-- =" + x--); // 使用 x 之后,再使 x 的值减 1
System.out.println("++x =" + ++x); // 使用 x 之前,再使 x 的值加 1
System.out.println("--x =" + --x); // 使用 x 之前,再使 x 的值减 1
可总结为:
++x:因为 ++ 在前面,表明 x 先加后用。
x++:因为 ++ 在后面,表明 x 先用后加。
–x:因为 – 在前面,表明 x 先减后用。
x–:因为 – 在后面,表明 x 先用后减。
算术复合赋值运算符
算数符合赋值运算符集成了计算与赋值的功能的一种缩写,一般用于变量自身的变化。
复合赋值运算符具有便于输入、比长格式版效率高等优点。
我们简单的列出了算数复合赋值运算符的操作方式,表格如下所示:
运算符 | 名称 | 示例 | 转换 |
---|---|---|---|
+= | 加赋值 | a += b | a = a + b |
-= | 减赋值 | a -= b | a = a - b |
*= | 乘赋值 | a *= b | a = a * b |
/= | 除赋值 | a /= b | a = a / b |
%= | 取余赋值 | a %= b | a = a % b |
在本章我们学习了:
- 赋值运算符用于修改变量的数据内容
- 算数运算符有:加、减、乘、除、余
- 一元运算符只用作一个运算数
- 二元运算符要有两个运算数
- 相除或取余的第二个操作数不能为 0
- 自增、自减的操作符在前面和在后面是不同的
- 算数符合赋值运算符集成了计算与赋值的功能的一种缩写
接下来,我们开始学习 Java 关系比较运算符:Java零基础26-Java关系比较运算符