gpt4 book ai didi

java nextInt() 尝试多次捕获重复输出

转载 作者:行者123 更新时间:2023-12-01 15:12:49 26 4
gpt4 key购买 nike

我正在编写一个程序,该程序使用 nextInt(); 在程序中接受两个整数,并将其包装在 try catch block 中以阻止错误输入,例如 double 或字符。

当输入多个错误输入时,循环会重复相同的次数。我认为这是因为我的 scan.next() 必须循环足够的时间才能捕获不带错误的错误输入。有没有办法在第一次运行时知道这个数字,以便循环运行下一次?

在输出中 if(cont == 'N') System.out.print("\nPlease re-enter\n\t:"); 将输出并镜像写入不匹配输入的次数。也就是说,如果我输入 3 3.3 则会额外重复一次,如果输入 s 3.3 2.5 则会额外重复 3 次。

我尝试在 scan.next() 周围放置一个循环,将其默认为十次,但是太过分了,我必须在它再次开始读取之前输入额外的 8 个字符。也许是一个 while 循环,但它的条件是什么,我尝试了 while(scan.next() != null){} 但该条件从未停止。

//input error checking
char cont = 'Y';
do{
if(cont == 'N')
System.out.print("\nPlease re-enter\n\t:");
cont = 'Y';
/* to stop the accidential typing of things other
* than integers from being accepted
*/
try{
n1 = scan.nextInt();
n2 = scan.nextInt();
}catch(Exception e){
cont = 'N'; //bad input repeat loop
scan.next();//stops infinite loop by requesting Scanner try again
}
} while(cont == 'N');//do loop while told N for continue

最佳答案

不确定您希望代码执行什么操作。通过阅读您发布的内容,我假设您希望用户输入 2 个整数,如果他/她不输入,您想提示他/她重新输入某些内容,直到他/她输入 2 个整数。如果是这种情况我就添加

scan = new Scanner(br.readLine());

在此 if 语句之后:

if(cont == 'N')
{System.out.print("\n请重新输入\n\t:");}

这将解决您的循环问题

关于java nextInt() 尝试多次捕获重复输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com