我的这个类有一个foo方法和主要方法,我有一些变量和一个print语句。
public static boolean foo(int x, boolean b) {
if (x < 0) {
return true;
}
return !b;
}
说我打印以下内容:
foo (-3, c || !c)
我无法理解||是什么应该做的。我在main中声明了boolean c = false,但我看不出它如何选择输入c(false)或!c(true)。另外,侧面问题:布尔变量前面的惊叹号会给出相反的权利吗?即如果输入为假,并且foo返回!b,它将返回true?
答案 0 :(得分:3)
这可以说是一种同义反复,总是如此。
c || !c
表示:“c OR 不是c”。其中一个总是如此。
答案 1 :(得分:1)
我看不出它如何选择输入c(假)或!c(真)
不是“选择输入”两种不同的可能性。它传递值,这是评估 c || !c
的结果,是一个布尔值。
注意:对于x || !x
的任何布尔值,true
将始终评估为x
。
答案 2 :(得分:1)
c || !c
始终为true
- 您也可以用
foo (-3, true)
答案 3 :(得分:1)
如果您将c
声明为:
boolean c = false;// or true
然后c || !c
将始终生成true
。
因此,方法调用foo (-3, c || !c)
只能等同于foo (-3, true)
答案 4 :(得分:1)
“||”意味着OR,所以任何x || !x将始终返回true,无论您将x声明为false还是true。