Все отлично работает при первом запуске, но если я введу действительное число от 1 до 10, которое меньше, чем первый вход, выходные данные в основном останутся прежними.
Входы, следующие за первым, работают правильно, только если онивыше, чем предыдущие входы.
import java.util.Scanner;
public class Lab6_2{
public static void main(String []args){
//declarations
Scanner input = new Scanner(System.in);
char flagContinue;
int userOneToTen;
int factorialInteger = 1, counterA = 1;
//process
System.out.println("Do you want to start(Y/N):");
flagContinue = input.next().charAt(0);
while(flagContinue == 'y' || flagContinue == 'Y'){
System.out.println("Enter an integer (1 - 10):");
userOneToTen = input.nextInt();
while(counterA <= userOneToTen){
if(userOneToTen <= 0 || userOneToTen > 10){
System.out.println("Invalid entry. Please enter an integer between 1-10");
userOneToTen = input.nextInt();
}//end if
factorialInteger = factorialInteger * counterA;
counterA ++;
}//end while
System.out.println(userOneToTen + "!" + factorialInteger);
System.out.println("Do you want to start(Y/N):");
flagContinue = input.next().charAt(0);
}//end while
}//end main
}//end class