2014-10-02 59 views
1

我在计算考试分数时遇到了问题。使用未分配的本地,错误

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

该计划说:”使用未分配的局部变量的“中期,finalexam,makeupexam”请帮我谢谢大家从现在开始:)

回答

0

局部变量不会被初始化执行操作。你必须手动初始化它们。

局部变量没有默认值。

只需添加如下代码: -

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

它的发生,因为你还没有分配值的变量。

+1

谢谢兄弟,现在是okey:) – 2014-10-02 09:42:32

+0

我的荣幸@ErdemNayir :) – Neel 2014-10-02 09:47:37

1

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

+0

Downvoter care to comment? – 2014-10-02 09:36:10

0

更改您的变量声明:

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

如果您在catch失败的变量从未分配这是因为发生,你不能在未分配varible