我对这段代码有疑问。它是一个程序的一部分,用于计算您在某些计算器上称为 nPr 的值。它编译时没有错误,但每次我运行它并设置 n = 0 时,我都会得到一个看似无穷无尽的错误消息列表。为什么它不能打印出“错误!” 并像我编写的那样终止程序?
{
System.out.print("n = ");
int n = j.nextInt();
System.out.print("r = ");
int r = j.nextInt();
long n_fact = factorial(n);
if ( ( (n - r) <= 0 ) || (n <= 0) || (r < 0) )
{
System.out.println("Error!");
System.exit(0);
}
else
{
long nr_fact = factorial(n - r);
long nPr = n_fact / nr_fact;
NumberFormat f = NumberFormat.getNumberInstance();
System.out.println("nPr = " + f.format(nPr));
}
}