在Java中使用回调函数控制用户输入

cld4siwp  于 2022-11-27  发布在  Java
关注(0)|答案(1)|浏览(129)

首先,我是一个完全陌生的Java和试图了解POO。

演示文稿

在一个类中,我定义了一个名为inputCapacity的方法。我希望我的用户输入一个1到4之间的数字。为了验证,我尝试实现了一个小条件。

问题:当用户出错时,函数循环良好,但返回的userResponse对应于第一个输入!我需要在哪里重新分配变量?
精度

  • Java 13语言
  • 控制台应用程序
static int inputCapacity() {
    Scanner in = new Scanner(System.in);
    System.out.println("Indiquez le nombre de personnes (max 4) : ");
    int userResponse = in.nextInt();
    if (userResponse < 1 || userResponse > 4) {
    System.out.println("Saisissez un nombre valide (max 4).");
    inputCapacity();
    }
      return userResponse;
}
z4bn682m

z4bn682m1#

第二次调用inputCapacity()时,第二次调用的结果将被忽略,只需在调用前添加一个return语句就可以解决问题。

static int inputCapacity() {
    Scanner in = new Scanner(System.in);
    System.out.println("Indiquez le nombre de personnes (max 4) : ");
    int userResponse = in.nextInt();
    if (userResponse < 1 || userResponse > 4) {
      System.out.println("Saisissez un nombre valide (max 4).");
      return inputCapacity();
    }
    return userResponse;
}

相关问题