1) Ваши if - else if
условия избыточны. Вы можете использовать простой if - else
, так как ввод может быть только в этом диапазоне или нет. else if
имеет смысл только если у вас есть два или более диапазона для проверки, например
if(input > 0 && input < 3999){
...
}
else if (input > 4000 && input < 8000){
...
}
else {
...
}
2) Вам не нужен блок переключателей, вместо этого используйте пользовательский ввод в вашем состоянии while, так как вы хотите продолжить цикл, когда пользователь вводит Y / y, т.е. while(userChoice.equals("Y"))
3) Используйте цикл do - while
, если хотите, чтобы ваше приложение запускалось как минимум вовремя
public static void main(String[] args) {
System.out.println("Welcome to my integer Roman numeral conversion program");
System.out.println("------------------------------------------------------");
System.out.println(" ");
Scanner in = new Scanner (System.in);
String choice;
do{
System.out.print("Enter an integer in the range 1-3999 (both inclusive): ");
int input = in.nextInt();
if(input > 0 && input < 3999){
System.out.println(Conversion.Convert(input));
}
else{
System.out.println("Sorry, this number is outside the range.");
}
System.out.println("Do you want to try again? Press Y for yes and N for no: ");
choice = in.next();
}while(choice.equals("Y") || choice.equals("y"));
}