java求和提问

来源:百度知道 编辑:UC知道 时间:2024/06/03 07:09:32
class 作业{
public static void main(String args []){
int sum=0;
for (int i=1;i<=20;i++)
{int a;
a=a*i;
sum=sum+a;}
System.out.println("总和等于"+sum);}}
,请高手看看为什么不能编译?谢谢!

我不知道你要实现一个怎么样的结果,但是给你指出编译问题.
问题出在int a;
这句话你没有给a这个变量赋予一个初值,你下面a=a*i编译器不知道你的a中是什么数据.肯定不能通过编译,你给a赋予一个初值就可以通过编译了.
例如把int a;改成int a = 1;就可以了

public class 作业 {
public static void main(String args []){
int sum=0;
for (int i=1;i<=20;i++)
{ int a = 1; //记得要赋初始值!
a=a*i;
sum=sum+a;
}
System.out.println("总和等于"+sum);
}
}

问题出在a=a*i这一句,因为你没有对a进行初始化,没有初始化的变量是不能用来给其他变量赋值的
在声明a的时候应该给它一个初始值1

没有给
a赋值?

类名一般不用中文,并要与文件名相同,要声明成public class