我尝试将1
添加到我的变量sum
,但编译器说
变量
sum
未分配
在我的if语句中。我试过移动它,但不管我做什么,变量仍未分配。
static void Main()
{
int sum;
if(true)
{
sum += 1;
}
Console.Write(sum);
Console.ReadKey();
}
如何更改我的代码来修复此错误并停止编译器抱怨?
答案 0 :(得分:10)
变量sum
必须具有初始值:
int sum = 0; //or any other value
代码
static void Main()
{
int sum = 0;
if(true)
{
sum += 1;
}
Console.Write(sum);
Console.ReadKey();
}
想一想,在为sum
分配值之前,没有定义的值,它是未定义的。
undefined + 1
是,编译器不能知道如此引发错误并停止编译。
答案 1 :(得分:2)
声明的变量之间存在差异("我声明 sum 是 int 的类型>")它的值已定义(或者已分配)。
在评估之前,请确保已将值指定给他们:
static void Main()
{
// sum is declared as an int and an initial value of 0 is assigned to it
int sum = 0;
if(true)
{
sum += 1;
}
Console.Write(sum);
Console.ReadKey();
}
答案 2 :(得分:1)
这是因为sum在for循环内初始化,并且是基于未给出的和的先前值。有两种方法可以解决问题。将sum变量初始化为零(int sum = 0
)。或者在for循环之前初始化sum。
我认为第二个选项更有意义,因为你可能希望在for循环结束后获得累积结果。
答案 3 :(得分:0)
在使用任何局部变量之前,必须对其进行初始化或定义。 由于未定义sum,因此您收到此错误