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
您必须在外部将 counterA
和 factorialInteger
设置回一个
while 循环。
counterA = 1;
factorialInteger = 1
}//end while
counterA = 1;
factorialInteger = 1;
}//end main
第一个 运行 一切正常,但如果我输入 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
您必须在外部将 counterA
和 factorialInteger
设置回一个
while 循环。
counterA = 1;
factorialInteger = 1
}//end while
counterA = 1;
factorialInteger = 1;
}//end main