引言
- 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。
java基础 - 6
布尔运算
- 对于布尔类型boolean,永远只有true和false两个值。
- 什么是布尔值,Java和python中的布尔值其实也就是True或者False,也就是计算机识别的0或者1
- 布尔运算是一种关系运算,包括以下几类:
- 比较运算符:>,>=,<,<=,==,!=
- 与运算 &&
- 或运算 ||
- 非运算 !
- 运算的优先级为(从高到低)
- !
- ">,>=,<,<="(加引号是因为编辑时候>为引用的标识符)
- ==,!=
- &&
- ||
- 比如通过布尔值来决定变量的值
boolean isGreater = 5 > 3; // true
- 布尔值最主要的应用场景应该还是短路运算,因为b是false,所以&&上啥都不运算,所以除数为0并未报错,但是换成ture&&(5/0)必然是要报错的
public class Main {
public static void main(String[] args) {
boolean b = 5 < 3;
boolean result = b && (5 / 0 > 0);
System.out.println(result);
}
}


- 同理类似的,对于||运算,只要能确定第一个值为true,后续计算也不再进行,而是直接返回true:
三元运算符
- 三元运算符如:
b ? x : y,它根据第一个布尔表达式的结果,分别返回后续两个表达式之一的计算结果,什么意思呢
public class Main {
public static void main(String[] args) {
int n = -100;
int x = n >= 0 ? n : -n;
System.out.println(x);
}
}

- 首先判断是否大于等于0,如果满足那就是n,
:相当于or,不满足那就是-n
- 三元运算b ? x : y会首先计算b(b可以理解成一个条件),如果b为true,则只计算x(也可以理解成一个条件),否则,只计算y。此外,x和y的类型必须相同,因为返回值不是boolean,而是x和y之一。