大家好,我已经尝试回答这个问题好几个小时了:
编写一个程序,要求用户输入一组浮点值。当用户输入一个不是数字的值时,给用户第二次输入该值的机会。两次机会后,退出阅读输入。添加所有正确指定的值并在用户输入数据后打印总和。使用异常处理来检测不正确的输入。
我尝试了一些不同的东西,但我总是遇到同样的问题。一旦输入不是数字的东西,程序就会输出提示输入另一个输入的消息,但是没有给出机会,也就是说,在 1 个不正确的输入之后,它会打印该消息并直接跳到打印总和。我能做的最好的就是在下面我只是不确定如何解决这个问题。任何帮助是极大的赞赏。
import java.util.Scanner;
import java.util.InputMismatchException;
public class q6{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
boolean firstChance = true;
boolean secondChance = true;
double sum = 0;
while (secondChance){
try{
while (firstChance){
try{
System.out.print("Please enter a number: ");
double input = in.nextDouble();
sum = sum + input;
}
catch (InputMismatchException ex){
firstChance = false;
}
System.out.print("Please enter a number to continue or something else to terminate: ");
double input = in.nextDouble();
sum = sum + input;
firstChance = true;
}
}
catch (InputMismatchException e){
secondChance = false;
}
}
System.out.print("The sum of the entered values is " + sum);
}
}