2014-10-02 58 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