目录
1.1 数据类型转换
数据类型转换就是把一个数据从一种数据类型转换为另一种数据类型,数据类型转换可以分为自动转换和强制转换.
1.2 自动数据类型转换
在运算的时候有一个规则就是参与运算的数据他们的类型必须一致,如果一个int类型变量和一个byte类型变量进行加法运算,就会发生自动数据类型转换,下面来看一个例子.
1.3 强制数据类型转换
变量 | 内存 | |||
int num1 | 0000 | 0010 | 1100 | 0001 |
int num2 | 0000 | 0000 | 0010 | 1001 |
byte num3=(num1+num2) | 1010 |
2.1 Scanner类
在程序运行过程中,接受从键盘输入的值需要用到Scanner类,Scanner类是Java中已经实现的,我们直接使用就可以.
2.2 算术运算符
运算符是Java程序的重要组成部分,Java中的运算符多数和数学中的运算符一样.
对数据进行加减乘除等各种运算需要用到运算符,Java中的运算符和数学中的运算符类似但也有一些不一样的地方.
运算符 | 规则 | 示例 | 结果 |
+ | 连接 | "重"+"庆" | "重庆" |
+ | 加 | 3+5 | 8 |
- | 减 | 5-3 | 2 |
* | 乘 | 5*3 | 15 |
/ | 除 | 5/3 | 1 |
% | 取余 | 5%3 | 2 |
++ | 自减 | int a=2,a++/++a | 3 |
-- | 自增 | int b=4,b--/--b | 3 |
Eg1. "+"的用法
Eg2. "-"的用法
Eg3. "*"的用法
Eg4. "/"的用法
Eg5. "%"的用法
Eg6. "++"的用法
Eg7. "--"的用法
2.3 赋值运算符
赋值运算符就是为变量赋值的符号
运算符 | 规则 | 示例 | 结果 |
= | 赋值 | int num=3 | 3 |
+= | 加后赋值 | int num=3,num+=2 | 5 |
-= | 减后赋值 | int num=3,num-=2 | 1 |
*= | 乘后赋值 | int num=3,num*=2 | 6 |
/= | 整除后赋值 | int num=3,num/=2 | 1 |
%= | 取值后赋值 | int num=3,num%=2 | 1 |
注意:诸如"+="这样形式的赋值运算符,会将结果自动强转成等号左边的数值类型
案例一 交换两个变量中的值
案例二 求各位数之和
2.4 比较运算符
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及相等关系的,结果是布尔值true或者false.
运算符 | 规则 | 示例 | 结果 |
== | 相等 | 5==5 | False |
!= | 不等于 | 2!=6 | True |
< | 小于 | 6<8 | True |
> | 大于 | 2>5 | False |
<= | 小于等于 | 3<=6 | True |
>= | 大于等于 | 8>=3 | True |
2.5 逻辑运算符
逻辑运算符是用来对布尔值进行运算的,运算的结果也为布尔值true或false.
运算符 | 用法 | 规则 | 说明 | 实例 | 结果 |
&& | a&&b | 短路与 | ab 全为 true 时,计算结果为 true,否则为 false。 | 2>1&&3<4 | true |
|| | a||b | 短路或 | ab 全为 false 时,计算结果为 false,否则为 true。 | 2<1||3>4 | false |
! | !a | 逻辑非 | a 为 true 时,值为 false,a 为 false 时,值为 true | !(2>4) | true |
| | a|b | 逻辑或 | ab 全为 false 时,计算结果为 false,否则为 true | 1>2|3>5 | false |
& | a&b | 逻辑与 | ab 全为 true 时,计算结果为 true,否则为 false | 1<2&3<5 | true |
2.6 三元运算符
有一个操作数的运算符叫一元运算符 例如 !flag
有两个操作数的运算符叫二元运算符 例如 4+3
有三个操作数的运算符叫也就是三元运算符.
三元运算符的格式为:(条件表达式)?表达式1:表达式2
表达式就是用运算符将操作数连起来的式子,例如"5+6"、"true&&false"
都是表达式.条件表达式就是用比较运算符将操作数连起来的式子,
条件表达式的结果为"true"或"false".
当条件表达式结果为"true"时运算结果为表达式1,
若为"false",则运算结果为表达式2.
Eg1. 判断输入的整数为奇数或偶数
2.7 运算符优先级
当运算符较多时,运算的先后顺序往往容易混乱,其实运算符有优先级的概念.
按照运算符的优先级区分先后顺序.
优先级 | 运算符 | 简介 | 结合性 |
1 | [ ]、 .、 ( ) | 方法调用,属性获取 | 从左向右 |
2 | +、-、!、~、 ++、 -- | 正号、负号、逻辑非、按位非(取反)、自增、自减 | 从右向左 |
3 | * 、/ 、% | 乘、除、取余 | 从左向右 |
4 | + 、 - | 加、减 | 从左向右 |
5 | <<、 >>、 >>> | 左移位、右移位、无符号右移位 | 从左向右 |
6 | < 、<= 、>、 >=、 instanceof | 小于、小于或等于、大于、大于或等于, 判断某对象是否属于指定的类 | 从左向右 |
7 | == 、!= | 等于、不等于 | 从左向右 |
8 | & | 按位与 | 从左向右 |
9 | ^ | 按位异或 | 从左向右 |
10 | | | 按位或 | 从左向右 |
11 | && | 逻辑与(短路与) | 从左向右 |
12 | || | 逻辑或(短路或) | 从左向右 |
13 | ?: | 条件运算符(三元运算符) | 从右向左 |
14 | =、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 <、<= 、>、>= 、>>= | 赋值运算符 混合赋值运算符 | 从右向左 |
- 提示:
- 优先级先后顺序从高到低排列
- 优先级别最低的赋值运算符,其次是条件运算符。
- 单目运算符包括!、~、++、--,优先级别高。
- 可以通过()控制表达式的运算顺序,()优先级别最高。
- 总体而言,优先顺序为:算术运算符>关系运算符>逻辑运算符。
- 结合性为从右向左的只有赋值运算符、三目运算符和单目运算符(一个操作数)。
Eg.