【问题标题】:Use of unassigned local,error [duplicate]使用未分配的本地,错误[重复]
【发布时间】:2014-10-02 09:31:43
【问题描述】:

我在计算考试分数时遇到了问题。

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;
}

程序说“使用未分配的局部变量'midterm,finalexam,makeupexam”请帮助我谢谢大家从现在开始:)

【问题讨论】:

    标签: c#


    【解决方案1】:

    您正在尝试使用该变量,但它们可能永远不会分配给它们的值。在开始时将它们设置为0,它应该可以工作。

    【讨论】:

    • 反对者是否愿意发表评论?
    【解决方案2】:

    局部变量未初始化。您必须手动初始化它们。

    局部变量没有默认值。

    只需添加以下代码:-

    int midterm = 0,finalexam = 0,makeupexam = 0;
    double average = 0.0;
    

    它的发生是因为您没有为变量赋值。

    【讨论】:

    • 谢谢兄弟,现在没事了:)
    • 我很高兴@ErdemNayir :)
    【解决方案3】:

    改变你的变量声明:

    int midterm = 0,finalexam = 0,makeupexam = 0;
    double average = 0.0;
    

    发生这种情况是因为如果您在 catch 中失败,则该变量永远不会分配,并且您无法对未分配的变量执行操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多