为了账号安全,请及时绑定邮箱和手机立即绑定

如何在该程序中递归调用扫描仪?

如何在该程序中递归调用扫描仪?

动漫人物 2021-10-27 16:20:34
这是我的第一篇文章,所以我不确定格式,也没有包含完整的程序(如果需要,我可以)我正在编写一个程序,在该程序中我想在一种方法中使用扫描仪,该方法的工作是接收一个数字,检查其有效性,如果它无效,则递归并接收一个新数字。当我运行它时,扫描仪打开,获取号码,然后给我错误:线程“main”中的异常 java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt( Scanner.java:2117) 在 java.util.Scanner.nextInt(Scanner.java:2076) 在 Password.getGuess(Password.java:26) 在 Password.checkPassword(Password.java:46) 在 Password.getGuess(Password.getGuess(Password.java:26) java:35) 在 Password.checkPassword(Password.java:46) 在 Password.main(Password.java:7)public static int getRange(){    int range = (int) Math.pow(10, difficulty);    return range;}public static int getGuess() {    Scanner in = new Scanner(System.in);    System.out.println("ENTER PASSWORD_");    int guess = in.nextInt();    in.close();    if (guess > (getRange() - 1) || guess < (getRange() / 10 )) {        System.out.println("ERROR: INVALID_PASSWORD");        return getGuess();    } else {        checkPassword();        return guess;    }}
查看完整描述

1 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

尝试这样的事情:


boolean validInput = false;


while(!validInput)

{

    System.out.println("ENTER PASSWORD_");


    int guess = in.nextInt();


    if (guess > (getRange() - 1) || guess < (getRange() / 10 ))

    {

        System.out.println("ERROR: INVALID_PASSWORD");

    }

    else

    {

        // this will cause your input loop to terminate

        validInput = true;

    }

}


checkPassword();


查看完整回答
反对 回复 2021-10-27
  • 1 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信