我已经在我的uni for java中介绍了递归函数,并且在这个过程中我第一次看到了这种类型的代码,parseInt
.....是它喜欢....类似于系统输入,除了你直接从命令行输入整数?另外,(args [0])是什么意思,到目前为止,我所展示的只有String[] args
....有点困惑。
代码是:
private static long fact ( long n )
{
if(n==0)
return 1;
else
return n*fact(n-1);
}
public static void main(String[] args)
{
long n = Long.parseLong(args[0]);
System.out.println(fact(a));
}
答案 0 :(得分:1)
要清除这一点。龙是一个阶级。课程以大写字母开头。 在您的示例中,您使用的是System和Long类。
对于每种原始数据类型,都有一个类。 (int,long,byte,float,double等。) 这些类包含一系列函数,您正在调用其中一个名为parseLong的函数。
现在您的输入值(存储在args [0]中)是字符串类型。 Long是一个数值,这两个不兼容。 因此,您必须解析args [0]的值以使其与变量n匹配。 请注意,n的数据类型为long(long n = ..)。所以你只是在改变数据类型。
第一行将您的输入(当您调用程序时)转换为所需的数据类型,在您的情况下很长(非常大的数字可以存储在那里)。这是通过调用Long.parseLong来完成的。之后,您将调用System.out.println()函数。此函数/方法在控制台上打印一行。 代码打印的是使用函数fact(long number)给定数字的阶乘。