Java 为什么需要启动sum?
为什么需要启动sum 当sum初始化为0或其他整数(如5)时,答案保持不变,为什么?因为如果args.length==0,则不会执行for循环。Java阻止您在没有赋值的情况下使用sum 如果您的for循环没有执行,那么您的代码实际上是:Java 为什么需要启动sum?,java,Java,为什么需要启动sum 当sum初始化为0或其他整数(如5)时,答案保持不变,为什么?因为如果args.length==0,则不会执行for循环。Java阻止您在没有赋值的情况下使用sum 如果您的for循环没有执行,那么您的代码实际上是: class CommandSum { public static void main(String[] args) { int a,b,c,i; int sum = 0 ; for( i = 0;
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);
}
}
旁注:for循环当前未使用i循环变量。也许你的意思是:
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);
}
//为什么需要启动sum
如果args.length为0,则不会执行for循环。
然后到达使用sum的最后一行,System.out.println命令行sum is+sum,sum将是未初始化的,这在Java中是不合法的
//当sum初始化为0或其他整数(如5)时,答案仍然存在
同样,为什么
大概是因为您正在使用args.length>=3的情况进行测试,所以到达这一行
for(String arg : args) {
sum += Integer.parseInt(arg);
}
哪个给sum赋值你能详细说明你的问题吗?问题是什么?因为编译器无法预测for循环是否一直在运行。我相信for循环体应该是sum+=Integer.parseIntargs[I]。我不确定您是否真的理解您的代码片段中发生的事情。试着只给你的程序两个参数,看看发生了什么。顺便说一句,你的for循环似乎没有用,如果你不传递至少三个整数参数,它会崩溃。好的,但当sum初始化为0或其他整数(如5)时,答案保持不变,为什么?@user3753652可能是因为你传递了三个参数。因此,行和=a+b+c;完全覆盖sum的上一个值。如果像我建议的那样重写for循环,然后将零参数传递给方法,您将看到初始化值确实会影响结果。
for(String arg : args) {
sum += Integer.parseInt(arg);
}
sum = a+b+c;