[英]CommandLine Arguments in java Help
我想使用命令行參數來獲取用戶輸入,而不是使用增強的for循環來求和。
這是錯誤:
線程“main”中的異常java.lang.Error:未解決的編譯問題:類型不匹配:無法從double轉換為int
public class EnhanceForLoop {
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length !=5)
System.out.println(" please enter no more than 4 numbers");
else
{
double sum;
double arrayLength = Double.parseDouble(args[0]);
double [] myArray = new double [ arrayLength ];
double value = Double.parseDouble((args[1]));
double counter = Double.parseDouble((args[2]));
for(double num: myArray)
sum += num;
System.out.printf("The sum is %f ", sum);
}
}
}
到目前為止是這樣的:
公共類EnhanceForLoop {
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length !=5)
System.out.println(" please enter no more than 4 numbers");
else
{
double sum = 0.0;
int arrayLength = Integer.parseInt(args[0]);
double [] myArray = new double [ arrayLength ];
double num1 = Double.parseDouble((args[1]));
double num2 = Double.parseDouble((args[2]));
double num3 = Double.parseDouble((args[3]));
double num4 = Double.parseDouble((args[4]));
double num5 = Double.parseDouble((args[5]));
for(double num: myArray)
sum += num;
System.out.printf("The sum is %f ", sum);
}
}
}
這是答案:
公共類EnhanceForLoop {
public static void main(String[] args) {
// TODO Auto-generated method stub
if(args.length !=5)
System.out.println(" please enter no more than 4 numbers");
else
{
double sum = 0.0;
int arrayLength = Integer.parseInt(args[0]);
double [] myArray = new double [ arrayLength ];
double num1 = Double.parseDouble((args[1]));
double num2 = Double.parseDouble((args[2]));
double num3 = Double.parseDouble((args[3]));
double num4 = Double.parseDouble((args[4]));
for(String s: args){
sum += Double.parseDouble(s);
}
System.out.println("Sum: "+sum);
}
}
}
arrayLength
必須是整數。 從而
int arrayLength = Integer.parseInt(args[0]);
double [] myArray = new double [ arrayLength ];
記住考慮代碼流程也很重要:
您初始化一個數組。 您對數組中的值求和。
您從未向數組添加值,因此您將總是將一堆零相加。
您正在總結一個填充0.0
的數組(因為這是默認值),而不是命令行參數。
如果要對參數求和,則必須迭代它們(= args
數組),將每個參數轉換為double,然后添加它們。 你根本不需要double[]
。
編輯:(經過一些評論)
在您的問題的示例代碼中,您正在使用數組的增強型for循環,因此您似乎知道這樣的循環是什么。 所以,現在使用args
數組而不是myArray
。 在循環內部,執行Integer.parseInt(...)
或Double.parseDouble
或類似操作,並將結果添加到sum
變量中。
如果循環中需要多個語句,請使用{ ... }
對它們進行分組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.