簡體   English   中英

有人能告訴我這段代碼(Java)發生了什么嗎?

[英]Can someone tell me what is happening in this code (Java)?

下午好,

我是一名學生,我想知道我是否理解這段代碼的工作原理。 我認為該程序至少接受兩個必須是整數的參數,並且在執行后將返回一個新字符串。 如果這些參數的總和為“0”,它將顯示消息,因為參數的數量無效,因為沒有采取任何行動。 但是,如果參數與 '0' 的數字不同,則 'parseDouble' 方法將返回第一個參數(參數 0)值的兩倍,並且將通過 'for' 循環找到以下參數的總數。 接下來,'parseDouble' 方法再次找到循環中計算的總參數的兩倍,並且運算符 '* =' 將這個雙倍乘以第一個參數的兩倍。 使用 '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());

        }
    }   
}```

此代碼計算命令行參數的幾何平均值: https : //en.m.wikipedia.org/wiki/Geometric_mean

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM