自学Java10

130 阅读2分钟

引言

  • 在记录自己自学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之一。