CodeGym /Java 博客 /China /Java Boolean
作者
Pavlo Plynko
Java Developer at CodeGym

Java Boolean

已在 China 群组中发布
在 Java 语言的上下文中,“boolean”一词可以有不同的含义,尽管这些含义非常相关。可能是:
  • boolean 原始类型或这种类型的 boolean 变量
  • Java Boolean 类或 Boolean 包装器对象
  • Boolean 表达式、boolean 值、某些条件
  • Java Boolean 运算符
在本文中,我们将介绍所有这些选项,并解释 Boolean 表达式背后的概念。

一般意义的 boolean 运算是什么

Boolean 表达式的概念来自数学,或者更确切地说,来自数理逻辑。命题代数中的 Boolean 表达式可以是真或假的表达式。例如:
“雪是白色的” “鳄鱼会飞” “2 + 2 = 4” “1 + 1 = 21”
同时,“2”或“雪”都不是 Boolean 表达式。

Java boolean 原始数据类型和 boolean 变量

谈到 Java 中的 boolean,首先它很可能是 boolean 原始数据类型和这种类型的 boolean 变量。你可能已经猜到,这种类型的变量只能有两个值,true 和 false。 Java 有非常严格的限制:Java 中的 boolean 不能转换成任何其他数据类型,反之亦然。特别是,Java 中的 boolean 不是整数类型,不能用整数值代替 boolean。 下面是一个直接设置 boolean 类型的示例:

//boolean 变量示例
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
这里我们有 2 个 boolean 变量。 我们用一个使用 boolean 类型的例子编写一个小程序:

public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
这个程序将“false”输出到控制台。顺便说一下,boolean 变量默认设置为 false,但是 Java 不允许使用未初始化的局部变量。

Java 中的 boolean 表达式

除了将 boolean 变量显式初始化为 true 或 false 之外,boolean 数据类型在许多地方都是隐式使用的。正如任何数字相加的结果都将是一个数字一样,任何比较的结果都将是真或假,也就是说,结果将是 boolean 类型。 这意味着,除了通过 boolean 变量赋值语句直接指定 boolean 值之外,boolean 值还来自各种比较,如 5 > 2,主要用于条件语句和循环语句中。 下面是一个使用 boolean 类型的例子:

public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
输出是:
true false true
a < b 的情况下,< 运算符比较左边的表达式和右边的表达式。我们在屏幕上显示了比较的结果。 由于 5 < 7(语句为真),值 true 将被输出到控制台。 在第二种情况下,我们显示零和七的直接比较,在第三种情况下,我们询问变量 myBoolean 的值是否为 false。既然是这种情况,我们输出值 true。 事实上,要在 Java 中构建 boolean 表达式,我们可以使用任何比较运算符:
比较运算符 Java 运算符 运算示例 运算结果
小于 < a < b 如果 a 小于 b,则为 true,否则为 false
大于 > a > b 如果 a 大于 b,则为 true,否则为 false
小于或等于 <= a <= b 如果 a 小于或等于 b,则为 true。否则为 false
大于或等于 >= a >= b 如果 a 大于或等于 b,则为 true,否则为 false
等于 == a == b 如果 a 等于 b,则为 true,否则为 false
不等于 != a != b 如果 a 不等于 b,则为 true,否则为 false

何处使用 boolean 值

boolean 值和条件表达式经常用在分支语句、三元运算符和循环的条件中。事实上,这些使用是基于检查某些 Boolean 表达式。例如:

public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }
      }
}
该程序输出整数序列,只要满足 while 后面括号中的条件,就将它们递增 1。也就是说,当表达式 i <=10 为真时。 Java Boolean - 1

Java boolean 运算符。用 boolean 运算符构建 boolean 表达式

Java 中提供了以下逻辑(或 boolean)运算:
  • 逻辑否,也称为 NOT 或求反。在 Java 中,由表达式前的符号 ! 表示。

  • 逻辑与,也称为 AND 或合取。在应用它的两个表达式之间用符号 & 表示。

  • 逻辑或,在 Java 中,也称为 OR 或析取。在Java中,由两个表达式之间的符号 | 表示。

  • 异或,也称为 XOR 或严格析取。在 Java 中,它由两个表达式之间的符号 ^ 表示。

  • 在 Java 中,逻辑运算符包括条件或,表示为 ||,以及条件与,表示为 &&

让我们看看下标,其中简要介绍了 Java boolean 运算符,下面我们将更详细介绍并给出代码示例。表中的“操作数”是指应用运算符的逻辑表达式或变量。

a | b == true
boolean Java 运算符 名称 类型 说明 示例
! 逻辑“非”(负) 一元运算符      !x 指“非 x”。如果 xfalse,则返回 true。如果 xtrue,则返回 false

boolean x = true;


// !x == false
& 逻辑“与”(与,逻辑乘) 二元运算符 如果 abtrue,则      (a & b) 返回 true

a = true;
b = false;


a & b == false
| 逻辑或(逻辑加) 二元运算符 如果 ab 或者两者都为 true,则      (a | b) 返回 true

a = true;
b = false;

^ 逻辑异或 (XOR) 二元运算符 如果操作数(a 或 b)之一为 true     (a ^ b) 返回 true。如果 ab 两者都同时为 true 或 false,则返回 false。实际上,如果 a 不等于 b,则它返回 true

a = true;
b = false;


a ^ b == true
&& 条件与(缩写逻辑与) 二元运算符      a && ba & b 相同,但如果 a 为 false,则运算符仅返回 false 而不检查 b
|| 条件或(缩写逻辑或) 二元运算符      a || ba | b 相同,但如果 atrue,该运算符只返回 true 而不检查 b
注意,在 Java 中,运算符 &|^ 还适应于整数。在这种情况下,它们的工作方式略有不同,被称为按位逻辑运算符。 我们举一个例子,展示几个使用逻辑运算符组成的逻辑表达式。

public class BoolTest2 {
   public static void main(String[] args) {
   int a = 5;
   int b = 7;
   boolean myBool1 = true;
   boolean myBool2 = false;
       System.out.println(myBool1&myBool2);
       System.out.println(myBool1|myBool2);
       System.out.println(!myBool1);
       System.out.println((a > b) & !myBool1 | myBool2);
   }
}
以下是输出:
false true false false
事实上,可以使用逻辑运算符构建非常复杂的逻辑结构。
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
如果所有的变量都初始化,此类结构将会起作用。不过,你不应滥用此类结构,因为阅读代码非常困难。 然而,使用此类逻辑结构是非常有用的。试着用表中给出的其他逻辑运算符来建立逻辑表达式。

逻辑运算的优先级

与数学一样,在编程中,如果运算符出现在同一个表达式中,它们有特定的执行顺序。一元运算符比二元运算符优先,乘法(甚至是逻辑运算)比加法优先。 以下是逻辑运算符,它们在主题列表中的位置越高,优先级越高:

  • !

  • &

  • ^

  • |

  • &&

  • ||

Java boolean 包装器

在 Java 中,每个原始类型都有一个“兄弟”,即包装类 (Wrapper)。包装器是一个特殊的类,它在内部存储原始类型的值。然而,这是一个类,所以可以创建它的实例(对象)。这些对象在内部存储原始类型的必要值,而它们将是真实的对象。 Java boolean 原始类型有一个包装器 Java Boolean(B 带哦)类。Boolean 类对象的创建与其他类对象一样:

public class BoolTest2 {

        public static void main(String[] args)
        {
            System.out.println(Boolean.parseBoolean("True"));
            System.out.println(Boolean.parseBoolean("TRuE"));
            System.out.println(Boolean.parseBoolean("False"));
            System.out.println(Boolean.parseBoolean("here"));

        }
    }
输出是:
true true false false
评论 (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
afei1234567 级别 27,China,China
20 十一月 2022
逻辑运算符那张表,或的例子没有写全🧐