2017-07-09 3 views
-4

私のプログラムは現在、各行の末尾に正しい文字が続く、プログラム済みの真理値表を印刷しています。私はこのプログラムを超えて行きたいと思っていますが、壁にぶつかりました。カラムの出力をforループの関数呼び出しにリンクさせたことはありません。オンラインに近いものは見つけられません。基本的に私がしたいのは、p列に0が来たらp char 'F'を、1が来たらp char 'T'を代入することです。次のように私の計画のコードは次のとおりです。ここで真理値表Java、

public static void main(String args[]) 
{ 
    char p = 'T'; 
    char q = 'F'; 
    char r = 'T'; 
    int rows = (int) Math.pow(2,3); 

    for (int i=0; i<rows; i++) { 
     for (int j=3-1; j>=0; j--) { 
      System.out.print((i/(int) Math.pow(2, j))%2 + " "); 

     } 
     System.out.println(LProp(p,q,r)); 
    } 

} 

は私のLProp機能である:

private static char LProp(char p, char q, char r) 
{ 
    // Logical expression 
    //(~q /\r /\~p) \/(~(r \/~p)) 

    return return ORlogic(ANDlogic(NOTlogic(q),ANDlogic(r,NOTlogic(p))), NOTlogic(ORlogic(r,NOTlogic(p)))); 
} 

は私の文字に列1と0を割り当てるには、それは価値がある、あるいは可能? 出力は、4列目のテーブルであり、8列目は、4列目にchar TまたはFを出力します。

p q r LProp(p,q,r) 
0 0 0 F 
0 0 1 T 

など

+5

あなたがしようとしていることは明確ではありません。 – Eran

+0

真理値表を扱っていない人は、その投稿が意味をなさない方法を知ることができました。私は今投稿を更新しました。 – HamHat

+0

* 0がpの列に現れた場合、私はchar 'F'を代入します* Assign to what?あなたはそれで何をしたいですか? 0の代わりにFを印刷するだけですか? – Guy

答えて

0

あなたが与えられたブール値の正しいchar値を取得するには、単純なヘルパーメソッドを書くことができます:あなたはreturn value ? 'T' : 'F';かのような何かを書くことで、この方法を最適化することができ

public static char getCharForBoolean(boolean value) 
{ 
    if (value) { 
     return 'T'; 
    } else { 
     return 'F'; 
    } 
} 

?演算子を理解しています。

ブール値ではなく文字を使用するコードで、このメソッドを使用します。

bool result = LProp(p, q, r); // assuming it does return a boolean value 
System.out.println(getCharForBoolean(result)); 
関連する問題