我必须编写一个程序,它使用布尔运算符。该程序应该做的第一件事是通过“command:”询问用户操作员。用户只能输入“&&”,“||”,“!”并“退出”。退出只是关闭程序。它接下来要做的是向用户询问一个布尔变量,但这是我的问题:程序在输入“true”或“false”时工作得很好,但是我得到的任务说,用户只能使用“t”表示“f”作为输入。所以这是我的问题:如何让程序将“t”理解为“true”,将“f”理解为“false”?(顺便说一下,如果用户输入“!”,程序只输出第一个的否定参数)
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();
}
}
答案 0 :(得分:0)
使用哪种方式并不重要,但下面的内容适用于您的示例。它只是不包括输入格式错误的情况
String parameterString1 = eingabe.next();
boolean parameter1 = !command.equals("f");
String parameterString2 = eingabe.next();
boolean parameter2 = command.equals("t");
答案 1 :(得分:0)
最简单的方法是编写一个小方法,例如:
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());
答案 2 :(得分:-1)
您始终可以在if()条件下交叉验证用户输入。默认情况下,如果用户键入t,则将该布尔值设为true,反之亦然。
或者你可以使用switch语句