有人能告诉我这段代码(Java)中发生了什么吗?

有人能告诉我这段代码(Java)中发生了什么吗?,java,Java,下午好 我是一名学生,我想知道我是否理解这段代码是如何工作的。 我认为程序至少接受两个必须是整数的参数,并在执行后返回一个新字符串。如果这些参数的总值为“0”,它将显示消息,因为参数的数量无效,因为无法执行任何操作。 但是,如果参数与“0”不同,则“parseDouble”方法将返回第一个参数(参数0)值的两倍,并且将通过“for”循环找到以下参数的总和。 接下来,“parseDouble”方法再次查找循环中计算的总参数的两倍,并且运算符“*=”将该double乘以第一个参数的两倍。 使用“Ma

下午好

我是一名学生,我想知道我是否理解这段代码是如何工作的。 我认为程序至少接受两个必须是整数的参数,并在执行后返回一个新字符串。如果这些参数的总值为“0”,它将显示消息,因为参数的数量无效,因为无法执行任何操作。 但是,如果参数与“0”不同,则“parseDouble”方法将返回第一个参数(参数0)值的两倍,并且将通过“for”循环找到以下参数的总和。 接下来,“parseDouble”方法再次查找循环中计算的总参数的两倍,并且运算符“*=”将该double乘以第一个参数的两倍。 使用“Math.pow”方法,将返回第一个参数的值,并将其提升为第二个参数的幂。在本例中,将引发的第一个参数加倍,使总参数除以1.0。 (我不知道'str.append(result+“\n”);'是什么意思)! 如果您试图写一个字,程序将检测到它并再次返回错误消息,因为只接受整数。 最后,最终结果将作为控制台上唯一可见的结果打印出来。 是这样吗


    public static void main(String[] args){
        double result = 0;      
        int  i= 0, length = args.length;
        StringBuilder str = new StringBuilder();

        if(length==0){
            System.err.println("Number of arguments is not correct! \nWrite: java Ex1 <double>+");
        }else{
            try {
                result = Double.parseDouble(args[0]);

                for (i = 1; i < length; i++) {
                    result *= Double.parseDouble(args[i]); 
                }
                result = Math.pow(result, 1.0 / length); 
                str.append(result+"\n");



            } catch (NumberFormatException e) {
                    System.err.println("Argument <<" + args[i] + ">> must be a double!");
                    System.exit(1);
            }
            System.out.print(str.toString());

        }
    }   
}```

公共静态void main(字符串[]args){
双结果=0;
int i=0,length=args.length;
StringBuilder str=新的StringBuilder();
如果(长度==0){
System.err.println(“参数数量不正确!\n写入:java Ex1+”;
}否则{
试一试{
result=Double.parseDouble(args[0]);
对于(i=1;i
此代码计算命令行参数的几何平均值:

现在是学习如何使用调试器的好时机。逐行检查代码,检查变量,并查看它的作用。Double.parseDouble()将字符串转换为Double(一个长浮点数)。例如,如果有三个参数,这将打印三个参数乘积的立方根。你知道为什么吗?不要被这个词搞糊涂了。实际上,这里没有什么东西会加倍——产品中没有“第一个参数加倍”。这里,
double
仅仅意味着数字是用八个字节存储的,而不是四个字节,这使得它们比四个字节的
float
数字更精确。不,我想我不知道……double.parseDouble()的确切含义是什么?和str.append(结果+“\n”)?代码的根在哪里@弗雷德克