首页 专题 文章 代码 归档
Java 布尔类型
2020.02.25 11:58 2020.02.25 11:58

1. 布尔类型

Java 有一种表示逻辑值的简单类型,称为布尔型。它的值只能是这两个值中的一个。

布尔运算是一种关系运算,包括以下几类:

  • 比较运算符:>>=<<===!=
  • 与运算 &&
  • 或运算 ||
  • 非运算 !
private static void test05() {
    boolean a = 3 > 5;//false
    boolean b = !a; // true
    System.out.println("a = " + a);
    System.out.println("b = " + b);
}

布尔运算一般用于流程控制中的条件判断,比如下面的一个伪代码:

如果(明天天气晴朗)
    我们就去爬山吧!
否则
    我们就呆在家里!

也即是说,当如果()里面的值为真时,我们就执行我们就去爬山吧!,也即明天天气晴朗的值是真,也即明天天气晴朗=true

private static void test05() {
    boolean flag = true;
    if (flag) {
        System.out.println("我们明天去爬山!");
    }else {
        System.out.println("我们待在家里吧!");
    }
}

上述代码中,我们定义的flag变量,默认是为真的。

截图-1582600458

关系运算符的优先级从高到低依次是:

  • !
  • >>=<<=
  • ==!=
  • &&
  • ||

2. 短路运算

布尔运算的一个重要特点是短路运算。如果一个布尔运算的表达式能提前确定结果,则后续的计算不再执行,直接返回结果。

因为false && x的结果总是false,无论xtrue还是false,因此,与运算在确定第一个值为false后,不再继续计算,而是直接返回false

如下演示代码:

private static void test05() {
    boolean flag = false;

    boolean result = flag && (10 / 0 + 1 > 0);
    System.out.println("result = " + result);

}

如果没有短路运算,那么上述代码就会报错,原因是10 / 0

但结果是:

截图-1582600696

否则:

private static void test05() {
    boolean flag = false;

    // boolean result = flag && (10 / 0 + 1 > 0);
    // System.out.println("result = " + result);
    System.out.println((10 / 0 + 1 > 0));

}

截图-1582600747

3. 三元运算

三元运算符b ? x : y,它根据第一个布尔表达式的结果,分别返回后续两个表达式之一的计算结果。

三元运算是不少语言都支持的一种特性,有了三元运算符,我们就可以简化if else运算。

private static void test06() {
    boolean flag = true;
    if (flag) {
        System.out.println("我们去爬山!");
    }else{
        System.out.println("我们宅在家!");
    }

    // 下面两行代码,等价上面四行代码
    String result = flag ? "我们去爬山!" : "我们宅在家!";
    System.out.println("result = " + result);
}

截图-1582601149

本节阅读完毕! (分享
二维码图片 扫描关注我们哟