У меня возникают проблемы, когда пользователь вводит «L» или «%» в качестве примера (сообщение об ошибке отображается правильно, поскольку только номера должны быть введены), однако после этого появляется следующее входное сообщение «Пожалуйста, введите средний импульс». Я хочу остановить его, пока пользователь не войдет в число, и затем появится следующий. Извините, если им не ясно, пожалуйста, не стесняйтесь спрашивать.Как убедиться, что номер введен на консоль
// UserEntry класс
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class UserEntry{
public double totalImpulse ;
public double averageImpulse;
//Declaring all user input, with exception handling
double totalImpulse(){
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// String for Total Impulse
String strtotalImpulse = null;
int inttotalImpulse = 0;
try {
strtotalImpulse = in.readLine();
}
catch (IOException ioe) {
}
// convert it to integer
try {
double totalImpulse=Double.valueOf(strtotalImpulse); //Exception handling (Only integers)
}
catch (Exception e) {
System.out.println("Please enter an Integer for Total Impulse!"); //Print this when "L" or "%" , not integer has been entered.
}
return inttotalImpulse;
}
double averageImpulse(){
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
// String for Total Impulse
String straverageImpulse = null;
int intaverageImpulse = 0;
try {
straverageImpulse = in.readLine();
}
catch (IOException ioe) {
}
// convert it to integer
try {
double averageImpulse=Double.valueOf(straverageImpulse); //Exception handling (Only integers)
}
catch (Exception e) {
System.out.println("Please enter an Integer for Average Impulse!"); //Print this when "L" or "%" , not integer has been entered.
}
return intaverageImpulse;
}}
// Мастер-класс (вход)
public class Master { //Master class
public static void main(String args[]) //Standard header for main method
{
//User inputs
UserEntry input = new UserEntry(); //Creating object from UserEntry class
System.out.print("\nPlease enter Total impulse delivered: ");
input.totalImpulse();
System.out.print("Please enter Average impulse delivered: ");
input.averageImpulse();
}
}
(Исключение должно быть брошенные это связано с обработкой исключений, а недопустимый ввод пользователя еще не является исключением.) – user2864740
* «ничего, кроме целых (1, 2, 5.05, 10.10)» * 5.05 и 10.10 не являются целыми числами. Просьба уточнить. – Radiodef