Заменить деталь:
else if (user >= 5)
{
System.out.println(user + " was never an option. \nTry again.");
user = keyboardIn.nextInt();
}
На:
else if (user >= 5)
{
System.out.println(user + " was never an option. \nTry again.");
continue;
}
По сути, продолжить, тормозит текущий l oop и начать с нового, конечно, проверяя сначала условие ...
Однако, если вы хотите, чтобы ваш код был немного более эффективным, в вашем конкретном случае c это мой способ сделать это:
while(true) {
computer = generator.nextInt(3) + 1;
do {
System.out.println("Please enter in a number");
user = keyboardIn.nextInt();
} while(user>=5 && user<=0);
//The rest of your code deleting also the last else if statement
}
Это как ваш код чище и удобнее в обслуживании. Кроме того, вы будете уверены, что после выхода кода из l oop у вас обязательно будет число от 0 до 4, что будет допустимым вариантом