【问题标题】:Truth Table for Binary Operation二元运算真值表
【发布时间】:2018-09-14 22:28:48
【问题描述】:

我是编码新手。参加在线课程,由于某种原因,我本周无法掌握实验室。我们需要创建一个真值表。一个用于 AND,一个用于 OR。一些代码是给我们的,想法是使用布尔值..

这就是我到目前为止所拥有的.. 不多,但任何指导将不胜感激。另外,请温柔一点。我每周都会弄清楚实验室,但由于某种原因,我只是没有掌握这个。

public class TruthTables {

    public static void printTruthTableValue(boolean p, boolean q, String 
    logicalOperation)}

        printTruthTableValue(true,true, logicalOperation);
        printTruthTableValue(true,false, logcialOperation);
        printTruthTableValue(false,true, logcialOperation);
        printTruthTableValue(false,false, logicalOperation);
    }   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        printTruthTable("and");
        System.out.println();
        printTruthTable("or");
    }

输出需要是

p  q  p AND q
-------------
T  T  T
T  F  F
F  T  F
F  F  F

而 OR 是

p  q  p OR q
-------------
T  T  T
T  F  T
F  T  T
F  F  F

【问题讨论】:

  • 您的意思是用 Java 而不是 javascript 来标记它吗?此外,您的代码示例似乎缺少 printTruthTable 的定义
  • 你试过什么?你特别有什么问题?对我来说,这段代码看起来像是初始任务的输入(我可能错了)。我们无法为您完成作业,您需要一些意见才能开始帮助您。

标签: java boolean truthtable


【解决方案1】:

正如 Thymine 所说,您似乎缺少printTruthTable 的定义,而您对printTruthTableValue 的定义似乎是递归的并且有点混乱。如果您有更多关于该问题的信息,这也会有所帮助。但是,我希望您想要以下效果:

public class TruthTables {

    public static void printTruthTable(String logicalOperation) {
        boolean rows[][] = {{true, true, false},
                            {true, false, false},
                            {false, true, false},
                            {false, false, false}};

        if (logicalOperation.equals("and")) {

            System.out.println("p  q  p AND q");
            System.out.println("-------------");

            for (boolean[] row : rows) {
                row[2] = row[0] && row[1];
            }

        } else if (logicalOperation.equals("or")) {
            // A similar sort of thing...

        } else {
            throw new IllegalArgumentException("Not a valid boolean operator");
        }

        // Print table

        for (boolean[] row : rows) {
            StringBuilder sb = new StringBuilder();

            for (boolean value : row) {
                sb.append(value ? "T " : "F ");
            }

            System.out.println(sb);
        }
    }


    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        printTruthTable("and");
        System.out.println();
        printTruthTable("or");
    }
}

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多