class CommandSum
{
public static void main(String[] args)
{
int a,b,c,i;
int sum = 0 ;
for( i = 0; i< args.length; i++)
{
a = Integer.parseInt(args[0]);
b = Integer.parseInt(args[1]);
c = Integer.parseInt(args[2]);
sum = a+b+c;
}
System.out.println("Command Line Sum is " + sum);
}
}
为什么需要启动金额?
当sum初始化为0或其他整数如5时,答案保持不变,为什么?
答案 0 :(得分:11)
因为如果args.length == 0
,你的for循环不会执行。 Java阻止您使用sum
而不为其分配值。
如果你的for循环没有执行,你的代码实际上是:
public static void main(String[] args)
{
int a,b,c,i;
int sum; // assume you didn't assign anything
// here sum would not be defined
System.out.println("Command Line Sum is " + sum);
}
旁注:你的for循环当前没有使用i
循环变量。也许你的意思是:
for(i = 0; i < args.length; i++) {
sum += Integer.parseInt(args[i]);
}
或简单地说:
for(String arg : args) {
sum += Integer.parseInt(arg);
}
答案 1 :(得分:2)
//为什么需要启动总和?
如果args.length为0,则不执行for循环。
然后,您到达使用sum
,System.out.println("Command Line Sum is " + sum);
的最后一行,而sum
将未初始化,这在Java中是不合法的。
//当sum初始化为0或其他整数如5时,答案仍然存在 同样,为什么?
大概是因为您正在使用args.length
> = 3的情况进行测试,所以您到达此行
sum = a+b+c;
为sum