有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的布尔语

我是一名初学者,开始学习java语言。我在书中遇到了一个关于布尔人的问题。我不知道如何找到问题的价值,我想知道是否有人能给我一个代码应该是什么样子的示例。非常感谢您的帮助

书中的问题:

假设b的值为假,x的值为0。以下每个表达式的值是多少

a)b && x == 0

b)b || x == 0

c)!b && x == 0

d)!b || x == 0

e)b && x != 0

f)b || x != 0

g)!b && x != 0

h)!b || x != 0

我只是不知道该如何解决这个问题,救命! 谢谢


共 (6) 个答案

  1. # 1 楼答案

    The Conditional Operators

    The && and || operators perform Conditional-AND and Conditional-OR operations on two boolean expressions. These operators exhibit "short-circuiting" behavior, which means that the second operand is evaluated only if needed.

    && Conditional-AND

    || Conditional-OR

    Equality, Relational, and Conditional Operators

    a) b && x == 0

    &&是有条件的,这意味着只有当左操作数是true时,才计算右操作数。 在你的例子中,b为false,这意味着计算结束,因为无论false && <anything>如何,都不可能为true

    b) b || x == 0

    ||是条件or,这意味着只有在第一个操作数为false时才计算右操作数
    在你的例子中,b是假的,所以我们需要计算x==0来得到结果

  2. # 2 楼答案

    以下是你如何解决这个问题:

    • 回想一下&&||双方都需要boolean
    • 回想一下,!反转a的值boolean
    • 回想一下,二进制操作!===int对转换为boolean
    • 从右边开始;决定是true还是false
    • 将上一行的结果放入表达式中
    • 使用对应逻辑运算符的真值表计算结果

    让我们以你的前两个练习为例:

    b && x == 0

    你知道bfalse,所以AND的结果马上就知道了:它是false——不需要做任何其他事情

    b || x == 0

    1. 你知道bfalse,所以OR的结果现在还不知道
    2. 计算x == 0(值为true
    3. 计算b || true(该值为true,因为ORtrue的匹配总是true
  3. # 3 楼答案

    由于您正试图学习Java,启动eclipse并执行以下操作:

    public static void main (String args[]) {
    
        boolean b = false;
        int x = 0;
        if(b || x == 0) System.out.println(true);
        else System.out.println(false);
    }
    

    然后你就有了答案(至少是第一个答案)

  4. # 4 楼答案

    这本书应该解释每个操作的作用。您可以通过以下方式测试结果:

    boolean b = false;
    int x = 0;
    System.out.println(b && (x == 0));
    

    输出应该给出正确或错误的答案

  5. # 5 楼答案

    如果你看一下Java中的Operator Precedence!===&&||(逻辑and和OR)具有更高的优先级。所以

    b && x == 0
    

    只是

    b && (x == 0) // --> here x==0 gets evaluated first due to precedence
    

    这就是

    b && true // (cause x is 0)
    

    因为bfalse,所以最终的结果是false

  6. # 6 楼答案

    查找表达式值的一种简单方法是将表达式打印到屏幕上,在您的情况下:

    boolean b = false;
    int x = 0;
    
    System.out.println(b && x == 0);   // false
    System.out.println(b || x == 0);   // true
    System.out.println(!b && x == 0);  // true
    System.out.println(!b || x == 0);  // true
    System.out.println(b && x != 0);   // false
    System.out.println(b || x != 0);   // false
    System.out.println(!b && x != 0);  // false
    System.out.println(!b || x != 0);  // true
    

    必须将其放入Java类中并运行,例如:

    public class HelloBoolean {
        public static void main (String args[]) {
            // code comes here ...
        }
    }