java在发生异常时重新请求用户输入
我是java新手。我编写了一个程序,用户可以在其中选择要添加多少数字。如果用户输入一个字符串,它将抛出一个异常,程序会告诉用户再次输入所有详细信息
我的问题是我希望程序要求用户重新输入他输入错误的号码的详细信息
例如:用户选择添加4个数字,但他输入第三个数字作为字符串,程序应要求用户从第三个数字重新输入,而不是再次输入全部细节
My code is as follow:
import java.io.*;
import java.util.*;
class Add
{
public static void main(String args[]) throws Exception
{
boolean loop=true;
while(loop)
try
{
String yn;
do
{
Scanner s=new Scanner(System.in);
System.out.println("Enter how many numbers to add: ");
int num=Integer.parseInt(s.next());
int a,sum=0;
for(int i=1;i<=num;i++)
{
System.out.println("Enter number["+i+"]: ");
a=Integer.parseInt(s.next());
sum=sum+a;
}
System.out.println("The Sum is:"+sum);
System.out.println("Do you want to continue?(Y/N):");
yn=s.next();
} while(yn.equals("y")||yn.equals("Y"));
}
catch(Exception e)
{
System.out.println("Try Again\n");
}
}
}
# 1 楼答案
使用其他方法读取单个条目,直到其为有效数字:
然后,只要可以读取有效数字,就可以使用此方法:
方法getNumber保证仅当用户给出正确的整数时返回
# 2 楼答案
下面的代码应该会有所帮助
# 3 楼答案
您可以通过在代码中更深一层放置“重试”来解决此问题:
正如@Zhuinden所指出的,最好使用
Scanner.nextInt
,因为它更通用# 4 楼答案
根据你想要的工作,但不符合道德