Java 运算符(笔记)
1. 运算符和表达式
1.1 运算符:
对常量或变量操作的符号
eg: + - * /
1.2 表达式:
用运算符将常量和变量连接, 产生的符合Java语法的式子
eg: a + b
2. 算数运算符
2.1 分类:
+ - * / %
2.2 特点:
+ - * 与数学一致
/:
1.整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。
2.小数直接参与运算,得到的结果可能不精确。
案例:
System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335
%:取模、取余。
除法运算,取余数。
案例:
System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
应用:
//可以利用取模来判断一个数是奇数还是偶数
System.out.println(15 % 2);//1 奇数
2.3 练习:数值拆分
需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
代码:
import java.util.Scanner;
public class split {
public static void main(String[] args) {
//键盘录入一个三位数,获取其中的个位,十位,百位
//键盘录入一个三位数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数:");
int num = sc.nextInt();
//获取其中的个位,十位,百位
int ones = num % 10;
int tens = num /10 % 10;
int hunders = num / 100;
//打印结果
System.out.println("个位数为:" + ones);
System.out.println("十位数为:" + tens);
System.out.println("百位数为:" + hunders);
}
}
小记: 刚开始学还是,自己多敲敲好, 不要太依赖ai插件
3. 隐式转换
自动类型提升
原则: 小 -> 大
byte short int long float double
小 ---------------------------> 大
注意:
- java 的二进制运算规则规定: 所有基本数据类型的算术运算(如
+,-,*,/等),如果操作数中包含byte,short,char,这些类型会先被提升为int。
4. 强制转换
大 -> 小 不允许直接操作, 一定要做, 需进行强制类型转换
4.1 书写格式:
目标数据类型 变量名 = (目标数据类型)被强转的数据;
注意: 强制类型转换可能导致数据发生错误 ( 数据的精度丢失 )
5. 字符串的 + 操作
- +操作出现字符串, 作用: 拼接字符串
- 从左到右执行
- 可以直接加数字
- 可以加变量(拼接的是变量的值)
字符的 + 操作
加的是ASCII码值
6. 自增自减运算符
6.1 分类:
++ 自增运算符
-- 自减运算符
++:变量值+1
–:变量值-1
6.2 注意:
- ++a : 先++, 再使用
- a++, 先使用, 再++
7. 赋值运算符
=
把等号右边的结果赋值给左边的变量
8. 扩展赋值运算符
8.1 分类:
+=、-=、*=、/=、%=
8.2 运算规则:
把左边跟右边进行运算,最终的结果赋值给左边,对右边没有任何影响
8.3 注意点:
扩展的赋值运算符中隐层还包含了一个强制转换
以+=为例。
a += b ;实际上相当于 a = (byte)(a + b);
9. 关系运算符
又叫比较运算符,就是左边跟右边判断而已
9.1分类:
| 符号 | 解释 |
|---|---|
| == | 判断左右是否相等,成立true,不成立false |
| != | 判断左右是否不相等,成立true,不成立false |
| > | 判断左是否大于右,成立true,不成立false |
| >= | 判断左是否大于等于右,成立true,不成立false |
| < | 判断左是否小于右,成立true,不成立false |
| <= | 判断左是否小于等于右,成立true,不成立false |
9.2 注意:
-
关系运算符最终的结果一定是布尔类型的
要么是true,要么是false -
在写
==的时候,不要写成=
10. 逻辑运算符
10.1 & 和 | 的使用:
- &:逻辑与(而且)
两边都为真,结果才是真,只要有一个为假,那么结果就是假
- |:逻辑或(或者)
两边都为假,结果才是假,只要有一个为真,那么结果就是真
10.2 ^(异或)的使用:
不常用, 了解即可
计算规则:如果两边相同,结果为false,如果两边不同,结果为true
10.3 !(取反)的使用:
是取反,也叫做非
计算规则:false取反就是true,true取反就是false
温馨提示:取反最多只用一个
11. 短路逻辑运算符
分类: && ||
11.1 &&:
运算结果跟&是一模一样的,只不过具有短路效果。
11.2 ||:
运算结果跟|是一模一样的。只不过具有短路效果。
11.3 逻辑核心:
当左边不能确定整个表达式的结果,右边才会执行。
当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。
11.4 总结:
&& 和 & 、||和|的运行结果一样
但是短路逻辑运算符可以提高程序的运行效率。
11.5 建议:
最为常用: && || !
12. 三元运算符
又叫做:三元表达式或者问号冒号表达式
12.1 格式:
关系表达式 ? 表达式1 :表达式2 ;
12.2 计算规则:
- 计算关系表达式的值
- 关系表达式值为真,执行表达式1
- 关系表达式值为假,执行表达式2
12.3 注意点:
三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么直接打印出来
12.4 应用案例
比大小
public class max{
public static void main(String[] args){
int a = 10;
int b = 20;
int max = a > b ? a : b;
System.out.println(max);
System.out.println(a > b ? a : b);
}
}
13.运算符的优先级
-
在Java中涉及了很多的运算符,每一种运算符都有各自的优先级
-
但是这些优先级不需要记忆
-
只要知道其中一点:
小括号优先于所有
Java中运算符大部分与 c/cpp 相同
更多推荐

所有评论(0)