我尝试检查应该是 0 或 1 的用户输入。如果是 1,则程序返回 true;如果是 0,则返回 false;如果除(1 和 0)之外有任何其他整数值,程序将再次调用自身来获取输入正确。
第一次使用 1 或 0 效果很好,但如果我第一次尝试提供其他数字,该方法将调用并获取输入,但即使我提供 1 或 0,它也会返回 false。
//这是代码...
导入java.util.Scanner;
班级计算器{
public static boolean choice;
public static Scanner input;
public static void main(String[] args) {
choice = getChoice();
//System.out.println("after choice");
if(choice) System.out.println("true");
else System.out.println("false");
}
public static boolean getChoice() {
input = new Scanner(System.in);
System.out.println("1 : Start Calculator ");
System.out.println("0 : Exit ");
int number = input.nextInt();
if (number == 1) return true;
else if (number == 0) return false;
else {
System.out.println("Choose either 1 or 0 ");
getChoice();
}
//System.out.println("before return");
return false;
}
}
if (number == 1) return true;
else if (number == 0) return false;
else {
System.out.println("Choose either 1 or 0 ");
getChoice();
}
//System.out.println("before return");
return false;
将其修改为:
switch (number) {
case 1: return true;
case 0: return false;
default: return getChoice();
}
// don't hardcode return false