使用未分配的本地,错误
本文关键字:错误 分配 | 更新日期: 2023-09-27 18:25:28
我在计算考试分数时遇到了一个问题。
int midterm,finalexam,makeupexam;
double average;
try
{
midterm=Int32.Parse(txtMidterm.Text);
finalexam=Int32.Parse(txtFinal.text);
}
catch
{
txtResult.Text="any mark has not been written";
}
average= midterm*30/100+finalexam*70/100;
if(average>=49.5 && finalexam>50)
{
txt.Result.Text="passed, average: "+average.To.String();
}
else
{
txtResult.Text="makeup stayed";
}
try
{
makeupexam=Int32.Parse(txtMakeUpExam.Text);
}
catch
{
txt.Result.Text="MakeUp's mark has not been written";
}
average= midterm*30/100+makeupexam*70/100;
if(average>=49.5 && makeupexam>50)
{
txtResult.Text="Passed: " + average;
}
else
{
txtResult.Text="failed, average: ", average;
}
该程序说"使用未分配的局部变量'intermediate,finalexam,makeupexam"请帮我从现在开始感谢大家:)
您正在尝试使用变量,但它们可能永远不会被分配值。在开始时将它们设置为0
,它应该可以工作。
局部变量未初始化。您必须手动初始化它们。
局部变量没有默认值。
只需添加以下代码:-
int midterm = 0,finalexam = 0,makeupexam = 0;
double average = 0.0;
发生这种情况是因为您没有为变量赋值。
更改变量声明:
int midterm = 0,finalexam = 0,makeupexam = 0;
double average = 0.0;
发生这种情况的原因是,如果您在catch
中失败,则变量永远不会分配,并且您无法对未分配的可变执行操作