Java 学习之路(八)- Java中的运算符

什么是运算符?

  • 运算符对一个或者多个值进行运算,并得出一个运算结果。
  • 运算符的运算结果类型有的是固定的,有时候会根据被计算的值变化。比如两个 int 相加,结果的类型就是 int。 两个 byte 相加,返回值的类型就是int 。
  • 混淆点:除赋值运算符外,运算符本身不会更改变量的值(除了赋值运算)。
int a = 10;
System.out.println(a + 1);  // a 的值并没有被改变

a += 5;
System.out.println(a);  // a 被重新赋值了,这时 a 改变了

取模运算符:%

用来计算余数。

  • 负数也可以取模
  • 负数也可以取模
  • 小数也可以取模(很少用到)
int num = 10;
System.out.println(num % 2); // 0
System.out.println(num % -3); // 1 ,跟 % 3 是一样的
System.out.println(num % 4); // 2
System.out.println(num % 5); // 0
System.out.println(num % -6); // 4 ,跟 % 6 是一样的
int num = -10; // 决定了取模后的值的正负
System.out.println(num % 2); // 0
System.out.println(num % -3); // -1 
System.out.println(num % 4); // -2
System.out.println(num % 5); // 0
System.out.println(num % -6); // -4

除法运算符: /

int a = 10;
int b = 3;
System.out.println(a / b); // 3 ,因为是整数型,返回结果也是整数型
int a = 10;
double b = 3.0;
System.out.println(a / b); // 3.3333333333333335

比较运算符和布尔运算符

比较运算符

  • =

  • <
  • <=
  • !=
  • ==
    返回 boolean 类型值。
int a = 10;
int b = 15;
int c = 10;

System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a < b);
System.out.println(a <= b);
System.out.println(a != b);

System.out.println(a != c);
System.out.println(a >= c);
System.out.println(a <= c);
System.out.println(a == b);
System.out.println(a == c);

布尔运算符

  • ! 叫做运算符, not(取反)运算符。!truefalse!falsetrue
  • & 叫做运算符,and 运算符。true & truetruetrue & falsefalse
  • && 叫做且且运算符,andand 运算符。运算结果和 & 一样。
  • | 叫做运算符, or 运算符。true | false是为 truefalse | false 是为 falsetrue | true 是为 true
  • || 叫做或或运算符,oror 运算符。运算结果和 | 一样。
boolean a = true;
boolean b = false;

System.out.println(a && b);
System.out.println(a & b);
System.out.println(a || b);
System.out.println(a | b);
System.out.println(a || (10 / 0 > 1)); // 当前面是 true 时,|| 后面代码不会被执行,这里不会报错
System.out.println(a | (10 / 0 > 1));  // 当前面是 true 时,| 后面代码也会被执行,这里会报错(被除数不能是 0)
// 代码中尽量不要使用 单个 &  和 |

小括号运算符

小括号运算符内可以包含任何运算符,决定运算符的顺序。

int a = 10;
int b = 88;
boolean c = ((a + b) * a - 9 * (a + b)) == (a + b);

System.out.println(c); // true

运算符优先级

  • ()
  • !
  • */%
  • +-
  • >>=<<=
  • ==
  • !=
  • &&&|||
  • =

理解运算符,灵活记忆优先级

  • 为什么等号的优先级最低?
  • 为什么布尔运算符的优先级 低于 比较运算符?
  • 为什么比较运算符的优先级 低于 算术运算符?

猜你喜欢

转载自blog.csdn.net/Kevinblant/article/details/119706472