【发布时间】:2019-03-10 07:12:25
【问题描述】:
第一次运行一切正常,但如果我输入一个介于 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
【问题讨论】:
-
如果您想第二次查找阶乘,请在 while 循环内将值设置为
factorialInteger = 1; counterA = 1;。 -
这成功了!太感谢了!我一直盯着这个看了一天,根本想不通。
-
只需调试您的代码即可了解问题出在哪里。很高兴为您提供帮助。
标签: java validation input while-loop factorial