1-10 之间的正整数的阶乘。问题:仅当有效输入大于先前输入时才有效

Factorial of a positive integer between 1-10. Issue: Works only if valid input is greater than previous input

第一个 运行 一切正常,但如果我输入 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

您必须在外部将 counterAfactorialInteger 设置回一个 while 循环。

counterA = 1;
factorialInteger = 1


    }//end while
    counterA = 1;
    factorialInteger = 1;

  }//end main