[英]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.