我一直在尝试编写一个计算1到10之间数字的阶乘的程序。我可以正确计算阶乘,但问题是,它计算阶乘,即使数字大于10或小于1没有再问过它。
import java.util.Scanner;
public class Factorial {
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int num ;
int factorial = 1;
do{
System.out.println("Enter an integer(1-10) :");
num = input.nextInt();
}while(num>10 && num<1);
for (int x = 1 ; x <= num ; x++)
factorial = factorial * x;
System.out.println("Factorial of number is " + factorial);
}
}
在将变量“num”声明为随机nubmer之后,我尝试使用while
而不是do-while
。但后来它给了我随机数的阶乘。这段代码有什么问题?
答案 0 :(得分:4)
您的while
循环条件不正确。它不能同时大于10且小于1.使用逻辑或运算符||
来强制执行您的范围:
}while(num > 10 || num < 1);
答案 1 :(得分:0)
你的'while'条件不正确。试试: while(num> 10 || num&lt; 1);
否则,只要输入的数字大于10且小于1,它就会循环。