Skip to content

Latest commit

 

History

History
130 lines (83 loc) · 3.25 KB

运算符.mdx

File metadata and controls

130 lines (83 loc) · 3.25 KB
id title
运算符
9. 运算符

赋值运算符

赋值运算符使用的是等于号=,在赋值操作中,它是赋值符号

在为变量赋值时,会把赋值符号 = 右侧表达式的值赋值给左侧的变量。

public static void main(String[] args) {
	int a = 10;
}

算术运算符

基本的算术运算符:

运算符 + - * / %
说明 取余

语法糖

运算符 += -= *= /= %=
说明 加等 减等 乘等 除等 取余等

示例:

public static void main(String[] args) {
    int a = 1;
    a += 1; // 相当于 a = a + 1;
}

:::tip a += 1 和 a = a + 1 并不完全等价,在数据类型那一讲提到过,+= 在涉及到强制类型转换(窄化处理)时,编译器会自动进行强制类型转换;而 a = a + 1 这种需要显式地进行强制类型转换。 :::

自增、自减运算:

运算符 说明
++ 自增运算,+1
-- 自减运算,-1

自增、自减运算符使用的注意事项:

  • 自增、自减运算符的优先级要高于其他算术运算符;
  • 自增、自减运算符放在变量左侧时,先执行自增、自减运算,再执行其它运算;
  • 自增、自减运算符放在变量右侧时,先执行其它运算,然后变量再自增、自减。

思考下下面这段代码的输出结果:

public static void main(String[] args) {
    int a = 12;
    int b = 45;
    int c;

    c = a + b--;

    System.out.println("a的值:"+a);
    System.out.println("b的值:"+b);
    System.out.println("c的值:"+c);
}

关系运算符

也称为"比较运算符",用来比较变量、数值的关系。关系运算符的结果是布尔类型

关系运算符 > < >= <= == !=
说明 大于 小于 大于等于 小于等于 等于 不等于

逻辑运算符

逻辑运算符用来判断多个条件要满足的关系,它的结果是布尔类型

逻辑运算符 说明
&& 运算符左右两边都为true时,结果为true,否则结果为false
|| 运算符左右两边都为false时,结果为false,否则结果为true
! 取反

与运算符还可以是 &,它和 && 在使用上有稍许区别:

  • && ,叫做"短路与运算符",当它左侧的表达式为false时,将不会执行运算符右侧的表达式;
  • & ,即便运算符左侧为false,依然会执行右侧的表达式。

或运算也同上,有 ||| 两种:

  • || ,叫做"短路或运算符",当它左侧的表达式为true时,将不会执行运算符右侧的表达式;
  • | ,即便运算符左侧的true,依然会执行右侧的表达式。

三元运算符

假设这样一个场景,当满足一定条件时,返回一个值,否则就返回另一个值。像这种场景就可以使用三元运算符。

三元表达式的写法格式如下:

布尔表达式 ? 值1 : 值2;

当问号 ? 前面的布尔表达式为 true 时,返回冒号 : 前面的表达式的值,否则返回冒号后面表达式的值。

public static void main(String[] args) {
    int a = 12;
    int b = 45;

    int max = a > b ? a : b;
}