Эй, ребята, я так долго пытался ответить на этот вопрос:
Напишите программу, которая просит пользователя ввести набор значений с плавающей запятой. Когда пользователь вводит значение, которое не является числом, дайте пользователю второй шанс ввести значение . После двух шансов выйдите из чтения. Добавьте все правильно заданные значения и распечатайте сумму, когда пользователь выполнил ввод данных. Используйте обработку исключений для обнаружения неправильных входов.Обработка исключений на Java - Как дать пользователю еще один шанс?
Я пробовал несколько разных вещей, но у меня всегда такая же проблема. Когда в качестве ввода указывается то, что не является числом, программа выводит сообщение с запросом на другой ввод, однако шанс не предоставляется, то есть после 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);
}
}
Вместо того, чтобы читать 'double', читайте' String' и используйте 'Double.parseDouble (String)'. Кроме того, если ваш 'firstChance' является' true' после блока 'try-catch', вы должны разбить' while-loop '. –
глядя на ваш вопрос, вы, кажется, знаете логику, но это не отражено в коде. Я предложил бы сухим запустить этот код с тестового ввода и попытаться выяснить проблему самостоятельно. Вам просто нужно убедиться, что ваша программа вернется к первоначальной подсказке после сообщения об ошибке – Shurmajee