为什么return语句返回默认值

问题描述 投票:0回答:1

我尝试检查应该是 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;
}

}

java return
1个回答
0
投票
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
© www.soinside.com 2019 - 2024. All rights reserved.