gpt4 book ai didi

java - while循环中的异常处理

转载 作者:行者123 更新时间:2023-11-30 08:13:47 25 4
gpt4 key购买 nike

我在这段代码中遇到的问题如下:变量号不能是字符串,因此我尝试使用 try, catch (InputMissmatchException) 语句来解决该问题。但是,当 in 进入循环并且有人输入字符串时,异常会被处理,但它会使用最后一个有效条目再次执行循环。即我输入 5,然后输入“hello”,结果是:“您必须输入一个数字。”但现在又数到5了。

这使得计数器向计数变量添加过多的值。如果用户继续使用字符串,则循环会一遍又一遍地添加最后一个有效条目,因此最后的计数将是错误的。

从逻辑上讲,我希望程序能够处理该问题,并要求用户输入正确的条目,直到输入可接受的整数,而无需再次执行 while 循环;当用户输入有效条目时,保持循环或存在 (-1)。

int number = 0;
int[] count = new int[11];

try
{
number = input.nextInt();
}
catch (InputMismatchException y)
{
System.out.println("You must enter a number.");
input.nextLine();

}


while (number != -1)
{
try
{
++count[number];
}
catch (IndexOutOfBoundsException e)
{
System.out.println("Please enter a valid number from the menu.");
}

try
{
number = input.nextInt();
}
catch (InputMismatchException y)
{
System.out.println("You must enter a number.");
input.nextLine();

}
}

最佳答案

听起来你想要一个 while 循环,直到他们输入一个数字

int number = 0;
int[] count = new int[11];

while(true) {
try
{
number = input.nextInt();
break;
}
catch (InputMismatchException y)
{
System.out.println("You must enter a number.");
input.nextLine();

}
}


while (number != -1)
{
try
{
++count[number];
}
catch (IndexOutOfBoundsException e)
{
System.out.println("Please enter a valid number from the menu.");
}

while(true) {
try
{
number = input.nextInt();
break;
}
catch (InputMismatchException y)
{
System.out.println("You must enter a number.");
input.nextLine();
}
}

}

关于java - while循环中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29956673/

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