Вы должны удалить эти две строки:
int i2;
while(true){
System.out.print("Enter a second larger integer");
if(in.hasNextBigInteger()){
i2 = in.nextInt();
if(i2 > i1){
break;
}else{
System.out.println("Invalid Integer");
System.out.println("Enter a second LARGER integer");
String Invalid = in.next(); // <----- this line
}
break; // <------------ and this line
}else{
System.out.println("Invalid Integer");
System.out.println("Enter a second LARGER integer");
String Invalid2 = in.next();
}
}
Вам не нужно in.next
потреблять недопустимое целое число, потому что nextInt
будет потреблять его (в отличие от целого числа в неправильном формате)!
Вы также не выходите из цикла. Вы хотите, чтобы цикл снова зациклился, чтобы пользователь ввел правильный номер.
Вам также не нужны объявления String Invalid
. Достаточно просто сделать in.next();
.