2

このクラスには、fooメソッドと、いくつかの変数とprintステートメントがあるmainメソッドがあります。

public static boolean foo(int x, boolean b) {
    if (x < 0) {
          return true;
    }
    return !b; 
}

次のように印刷するとします。

foo (-3, c || !c)

何を理解するのに苦労しています|| することになっています。mainでブールc=falseと宣言しましたが、c(false)または!c(true)の入力を選択する方法がわかりません。また、副次的な質問:ブール変数の前の感嘆符はちょうど反対の権利を与えますか?つまり、入力がfalseで、fooが!bを返す場合、trueを返しますか?

4

5 に答える 5

3

それは、いわばトートロジーであり、常に真実です。

c || !c 意味:「cORnotc 。これらの1つは常に真実です。

于 2012-12-07T21:41:17.167 に答える
1

c(false)または!c(true)の入力を選択する方法がわかりません

2つの異なる可能性を「入力することを選択」するのではありません。単一のブール値を評価した結果であるを渡します。 c || !c

注:ブール値が。の場合、x || !x常にと評価されます。truex

于 2012-12-07T21:41:34.600 に答える
1

c || !c常になりますtrue-コードを次のように置き換えた方がよいでしょう

foo (-3, true)
于 2012-12-07T21:41:51.770 に答える
1

次のように宣言した場合c

 boolean c = false;// or true

その後、c || !c常にになりtrueます。

したがって、メソッド呼び出しfoo (-3, c || !c) は 次のようになります。foo (-3, true)

于 2012-12-07T21:42:34.800 に答える
1

"||" ORを意味するので、任意のx || !xは、xをfalseまたはtrueとして宣言するかどうかに関係なく、常にtrueを返します。

于 2012-12-07T21:45:21.777 に答える