gpt4 book ai didi

java - 真值表 - 将 boolean 值转换为 1 和 0

转载 作者:行者123 更新时间:2023-12-01 22:02:45 24 4
gpt4 key购买 nike

我目前正在阅读工作手册《Java 初学者指南》。第 2 章有一个创建真值表的小项目。显示的值的格式为 true 或 false。目标是显示 1 和 0。

我已尝试使用以下代码来执行此操作,但 String.valueOf 方法不适用于所有表达式。我不知道如何才能做到这一点。

package ChapterTwo;

public class LogicalOpTable {
public static void main(String[] args) {

boolean p, q;

System.out.println("P\tQ\tAND\tOR\tXOR\tNOT");

p = true; q = true;

String str0 = String.valueOf(p);
String str1 = String.valueOf(q);

str0 = true ? "1" : "2";
str1 = true ? "1" : "2";

System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));

p = true; q = false;
System.out.print(str0 + "\t" + str1 +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));

p = false; q = true;
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));

p = false; q = false;
System.out.print(p + "\t" + q +"\t");
System.out.print((p&q) + "\t" + (p|q) + "\t");
System.out.println((p^q) + "\t" + (!p));


}
}

最佳答案

你写错了:

str0 = true ? "1" : "2";
str1 = true ? "1" : "2";

你的意思可能是:

str0 = (str0 == "true") ? "1" : "2";
str1 = (str1 == "true") ? "1" : "2";

但您甚至可以做得更快(并在创建 str0str1 时删除第一个分配):

str0 = p ? "1" : "2";
str1 = q ? "1" : "2";

编辑:另请注意,在更改 p 的值时,您必须重新计算 str0str1或者如果你愿意的话q。所以你可能想编写一个子函数作为@DThought 的回答。

编辑 2:子功能可能如下:

static String printBoolean(boolean b) {
return b ? "1" : "2";
}

并在主代码中使用此函数,如下所示:

System.out.print(printBoolean(p&q) + "\t" + printBoolean(p|q) + "\t");

另请注意,您不需要将同一段代码编写 4 次。您可以创建循环来迭代 (p,q) 的每个值。

关于java - 真值表 - 将 boolean 值转换为 1 和 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33433079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com