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 myBoolean; //boolean variable
myBoolean = false; 
boolean myBoolean1 = true; //another boolean variable
这里我们有 2 个 boolean 变量。 我们用一个使用 boolean 类型的例子编写一个小程序:

//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
这个程序将“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 类对象的创建与其他类对象一样:

Boolean b = new Boolean(false);
Java Boolean class has useful methods. One of the most interesting of these is the parseBoolean method. static boolean parseBoolean(String s) method parses the string argument as a boolean. The boolean returned represents the value true if the string argument is not null and is equal, ignoring case, to the string “true”. Otherwise it returns false.

parseBoolean method example


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 级别 28,China,China
20 十一月 2022
逻辑运算符那张表,或的例子没有写全🧐