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 相同

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐