Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 澄清此代码导致错误和不正确的原因_Java_Truthtable - Fatal编程技术网

Java 澄清此代码导致错误和不正确的原因

Java 澄清此代码导致错误和不正确的原因,java,truthtable,Java,Truthtable,以下代码导致false。谁能给我解释一下原因吗?我在理解使用真值表时遇到了一些困难。我是一名java初学者,提前感谢您的帮助 boolean x = false; boolean y = true; boolean z = true; System.out.println((!x || y && !z)); 我以为打印的行是假的,但正确的答案是真的。这里起作用的因素是运算符优先级、从左到右的求值以及“&&”和“||”的特殊“短路”性质 '和'绑定比'或'更紧' 首先,运算符优

以下代码导致false。谁能给我解释一下原因吗?我在理解使用真值表时遇到了一些困难。我是一名java初学者,提前感谢您的帮助

boolean x = false;
boolean y = true;
boolean z = true;

System.out.println((!x || y && !z));

我以为打印的行是假的,但正确的答案是真的。

这里起作用的因素是运算符优先级、从左到右的求值以及“&&”和“||”的特殊“短路”性质

'和'绑定比'或'更紧'

首先,运算符优先级意味着表达式是有效的

  (  (!x) || (y && !z) );
考虑到“| |”的短路执行,一旦我们知道
!如果x
为真,则不会对右侧进行求值

我写这篇文章是为了在评估每个术语时打印出来:

static boolean P(String s, boolean x) { System.out.println(" "+s); return x; }
然后将每个布尔术语“b”替换为对p的调用(“b”,b):

产出结果

   !x
  true
注意:与y或z打印无关。

以下代码导致false-否,打印true。
   !x
  true