gpt4 book ai didi

java - 发生异常时重新请求用户输入

转载 作者:行者123 更新时间:2023-11-30 03:45:42 28 4
gpt4 key购买 nike

我是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");
}
}
}

最佳答案

您可以通过将“重试”放在代码中更深一层来解决此问题:

import java.io.*;
import java.util.*;

class Add {
public static void main(String args[]) throws Exception {
boolean loop=true;
Scanner s=new Scanner(System.in);
while(loop) {
try {
String yn;
do {
loop = true;
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;) {
try {
System.out.println("Enter number["+i+"]: ");
a=Integer.parseInt(s.next());
sum=sum+a;
i++;
}
catch(Exception e) {
System.out.println("Invalid input. Try Again.\n");
}
}
System.out.println("The Sum is:"+sum);
System.out.println("Do you want to continue?(Y/N):");
yn=s.next();
loop = yn.equals("y")||yn.equals("Y");
} while(loop);
}
catch(Exception e) {
System.out.println("Number of elements invalid. Try Again.\n");
}
}
}
}

正如 @Zhuinden 所指出的,最好使用 Scanner.nextInt,因为它更通用......

关于java - 发生异常时重新请求用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762222/

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