我必须编写一个程序,它正在使用布尔运算符。该程序应该做的第一件事是通过"命令:"向用户请求运算符。用户只能输入"&&"、"||"、"!"和"退出"。退出只是关闭程序。它做的下一件事是要求用户输入一个布尔变量,但这是我的问题:该程序在输入"true"或"false"时工作得很好,但我的任务是,用户只能使用"t"作为"f"作为输入。所以我的问题来了:如何使程序将"t"理解为"真",将"f"理解为"假"?(顺便说一下,如果用户输入"!"程序只是输出第一个参数的否定)
public static void main(String[] args) {
Scanner eingabe = new Scanner(System.in);
System.out.println("Command: ");
String command = eingabe.nextLine();
if(command.equals("quit")) {
System.exit(0);
}
System.out.println("Parameter 1:");
boolean parameter1=eingabe.nextBoolean();
if(command.equals("!")) {
System.out.println(!parameter1);
System.exit(0);
}
System.out.println("Parameter 2:");
boolean parameter2=eingabe.nextBoolean();
if(command.equals("&&")) {
System.out.println(parameter1&¶meter2);
}else if(command.equals("||")) {
System.out.println(parameter1||parameter2);
}
eingabe.close();
}
}
最简单的方法是编写一个小方法,例如:
boolean customParseBoolean(String input) {
if ("t".equals(input)) {
return true;
} else if ("f".equals(input)) {
return false;
}
// You don't have to throw an exception on invalid input; just an example.
throw new IllegalArgumentException("Invalid input: " + input);
}
然后调用类似以下内容:
boolean parameter1 = customParseBoolean(eingabe.nextLin());
你用哪种方式做并不重要,但下面应该适用于你的示例。它只是不涵盖输入格式错误的情况
String parameterString1 = eingabe.next();
boolean parameter1 = !command.equals("f");
String parameterString2 = eingabe.next();
boolean parameter2 = command.equals("t");
您始终可以在 if() 条件中交叉验证用户输入。 默认情况下,如果用户键入 t 将该布尔值设为 true,则创建具有 false 的布尔值,反之亦然。
否则,您可以使用 switch 语句