2011-07-26 25 views
-1

这款myCar评估的是什么?它是somePart()的返回值吗?这个myCar评估什么?它是somePart()的返回值吗?

boolean myCar = true || somePart(); 
+2

'somePart'只会在第一个条件为false时被评估,因此它将不会被评估。 &&和||运算符对两个布尔表达式执行条件与和操作。这些运算符表现出“短路”行为,这意味着第二个操作数仅在需要时才被评估。 http://download.oracle.com/javase/tutorial/java/nutsandbolts/op2.html –

+0

我并不想听起来粗鲁,但最好的学习方法是尝试编写一个示例程序,您可以使用它来测试它并查看结果是什么。 –

+0

在Java中,有'boolean'而不是'bool'。所以编辑。 –

回答

1

我会假设它总是会返回true。事实上somePart()永远不会被评估。

0

由于它是真的和somePart()之间的|| operator,它总是会返回true。

它检查条件是否为真,如果它发现这样的条件是真的,那么它被设置为真。这是为什么somePart()电话永远不会被评估的间接原因。

1

它被评估为真,somePart()永远不会被调用。

2

||运算符被称为“短路”运算符,因为如果它发现评估左操作数的结果为true,它将不会打扰评估右操作数。在你的情况下,truetrue,所以somePart()将不会被调用。

1

大声读出来。

"myCar equals TRUE -or- somePart()" 

由于第一个条件总是返回true,所以我们可以将功能评估短路。

0

即使somePart()返回false,它也会始终返回true。因为somePart()甚至不会被执行。 JVM优化逻辑表达式,并且如果结果是已知的,则不运行表达式的其余部分。

0

这是事实。总是。由于逻辑或运算符的行为是这样的:

Input 1 Input 2 Output 
------- ------- ------ 
0  0   0 
0  1   1 
1  0   1 
1  1   1 
+0

真值表中的一列应该是“真”的 – pseudosudo

相关问题