今回はgihyo.
問題:以下の論理式について、それぞれ真理値表を作成しましょう。
A | B | A+B |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
A | Ā |
---|---|
0 | |
1 |
A | B | A⊕B |
---|---|---|
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 |
「条件A
仮に論理演算子を使えるならば、
if (a || b){someProcedure();}
さて、
解説
(1)~(3)の真理値表を完成してください。
スペースの節約のために、
A | B | A+B | Ā | A⊕B |
---|---|---|---|---|
0 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 | 0 |
(4)問題(1)~(3)の演算の真理値表を出力するプログラムを作りましょう。
今回の問題の解決策として、
01: //filename : TestBoolean.java
02: class TestBoolean {
03: public static void main(String[] args) {
04: boolean a = false;
05: boolean b = false;
06: for( int i = 0; i07: if (i==0){a = false;} else { a = true;}
08: for( int j = 0; j09: if (j==0){b = false;} else { b = true;}
10: //
11: System.out.println("* a : " + a + ", b : " + b);
12: System.out.println(" a Or b : "+ (a | b) );
13: System.out.println(" Not a : "+ (!a) );
14: System.out.println(" a XOr b : "+ (a ^ b) );
15: //
16: }
17: }
18: } // end of main
19: } // end of class
次にプログラムの実行結果を示します。このプログラムは解答の一例に過ぎません。もっとエレガントなプログラムを作ってみてはどうでしょうか。出力結果に凝るのも良いでしょう。
* a : false, b : false
a Or b : false
Not a : true
a XOr b : false
* a : false, b : true
a Or b : true
Not a : true
a XOr b : true
* a : true, b : false
a Or b : true
Not a : false
a XOr b : true
* a : true, b : true
a Or b : true
Not a : false
a XOr b : false
(5)論理演算子を用いずに、if文を使って論理和を記述してみましょう。
先ずは正解例を示します。
if (a) {
someProcedure();
} else if (b) {
someProcedure();
}
もし、
if (a) {
someProcedure();
}
if (b) {
someProcedure();
}
行き当たりばったりにプログラムを作成していると、
さて、