1

私は初心者で、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

この問題をどのように実行するのかわかりません。助けてください! ありがとう

4

9 に答える 9

4

この問題にアプローチする方法は次のとおりです。

  • それを思い出して&&、両側に||必要ですboolean
  • !の値を反転することを思い出してくださいboolean
  • !=二項演算を思い出して、 sの==ペアをints に変換します。boolean
  • 右側から始めます。かどうかを判断trueするfalse
  • 上記の行の結果を式に入れます
  • 対応する論理演算子の真理値表を使用して結果を計算します。

最初のいくつかの演習を例として使用しましょう。

b && x == 0

それが であることはわかってbいるfalseので、 の結果はANDすぐにわかります: それはfalse- 他に何もする必要はありません。

b || x == 0

  1. が であることはわかってbいるfalseので、 の結果はORすぐにはわかりません。
  2. 計算x == 0(値はtrue)
  3. 計算します ( -ing withは常にであるためb || true、値は です)。trueORtruetrue
于 2013-08-23T17:07:27.200 に答える
4

Java の演算子の優先順位を見て、and !=(論理 AND および OR)よりも優先順位==高い場合。そう&&||

b && x == 0

に過ぎない

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

これは

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

したがって、最終結果bfalsefalse

于 2013-08-23T17:05:46.680 に答える
2

式の値を見つける簡単な方法は、式を画面に出力することです。

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 ...
    }
}
于 2013-08-23T17:11:50.170 に答える
1

条件演算子

&& と || 演算子は、2 つのブール式に対して条件付き AND および条件付き OR 演算を実行します。これらの演算子は「短絡」動作を示します。つまり、2 番目のオペランドは必要な場合にのみ評価されます。

&& 条件付き AND

|| 条件付き OR

等値、関係、および条件演算子から

a) b && x == 0

&&つまり、右側のオペランドは、左側のオペランドが の場合にのみ評価されtrueます。あなたの場合、b は false です。つまり、評価は終了しますfalse && <anything><anything>.

b) b || x == 0

||は条件付き OR です。これは、最初のオペランドが である場合にのみ、右側のオペランドが評価されることを意味しfalseます。
あなたの場合、b は false なのでx==0、結果を得るために評価する必要があります。

于 2013-08-23T17:55:29.990 に答える
0

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);
}

それからあなたはあなたの答えを持っています(少なくとも最初のものには)。

于 2013-08-23T17:09:04.587 に答える
0

この本では、各操作が何をするかを説明する必要があります。簡単に結果をテストできます。

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

出力には、true または false の答えが表示されます。

于 2013-08-23T17:07:41.563 に答える
0

whenbは左側の式です:が false であるため、を含むものはすべて&&返されます。falseb

左側にb-が含まれている場合、右側の式が返される場合にのみ、 every||が返されます(そうでない場合は false が返されます)。truetrue

あなたが投稿した例のいくつかを見てみましょう:

a) b && x == 0 =>は falsefalseなので(AND)と評価されます。b&&

b) b || x == 0 =>は true であると評価され、(OR) を使用true しますx==0||

左辺に が含まれる場合、!bを持つ式は、右辺が に評価される場合&&にのみ に評価されます。そして、式が持っている場合、右側の式に関係なく評価されます。truetrue||true

c) !b && x == 0=> はtrue:と評価されます。true

d) !b || x == 0=> はtrue: と評価されます。両側が評価されるためです。true

g) !b && x != 0=> は、両側が true である必要がfalseあるため、と評価されますが、右側は と評価されます。&&false

h) !b || x != 0=> は、左側が に評価され、OR ( )を使用するtrueため、 に評価されます。true||

于 2013-08-23T17:07:44.107 に答える
0

まず第一に、Java では "0" は "false" ではありません (他の多くの言語とは異なります)。純粋なintです。

main 関数に精通していると仮定します。パブリック クラスと同じ名前でファイルを保存することを忘れないでください。

この場合、BooleansDemo.java

優先順位の規則は、これより前の回答で詳しく説明されています。

public class BooleansDemo {
    public static void main(String[] args) {
        Boolean b = false;
        int x = 0;
        System.out.println(b || x == 0);

        System.out.println(!b && x == 0);

        System.out.println(!b || x == 0);

        System.out.println(b && x != 0);

        System.out.println(b || x != 0);

        System.out.println(!b && x != 0);

        System.out.println(!b || x != 0);
    }
}
于 2013-08-23T17:12:42.823 に答える