2016-01-25 17 views
-4
private void btnHasil_Click(object sender, EventArgs e) 
    { 
     int rataipa = Convert.ToInt32(NIPA.Text); 
     int uipa, uipa1, uipa2, uipa3, uipa4; 

     if ((rataipa >= 61) && (rataipa <= 69)) 
     { 
      uipa1 = (70 - rataipa)/10; 
      uipa2 = (rataipa - 60)/12; 
     } 
     else if ((rataipa == 60) && (rataipa >= 70) && (rataipa <= 72)) 
     { 
      uipa2 = (rataipa - 60)/12; 
     } 
     else if ((rataipa >= 76) && (rataipa <= 84)) 
     { 
      uipa3 = (85 - rataipa)/13; 
      uipa4 = (rataipa - 75)/10; 
     } 
     else if ((rataipa >= 72) && (rataipa <= 75) || (rataipa == 85)) 
     { 
      uipa3 = (85 - rataipa)/13; 
     } 
     else 
      uipa = 1; 
    } 

我嘗試建立錯誤顯示變量uipa,它顯示「uipa」被賦值的變量,但從未使用過它的價值,但我之後用它現在我不知道如何解決。任何人都可以幫忙C# - 變量被分配但其值從未使用

+0

指定一個初始化值。 'int uipa = 0,uipa1,uipa2,uipa3,uipa4;' – Nathu

+2

問題是這些變量中的所有*都是在該方法的範圍內定義的。一旦你退出該方法,它們就不復存在。所以錯誤信息是正確的:它的價值永遠不會被使用。你在別處定義了另一個你正在使用的「uipa」嗎? – Ian

+0

它只在那裏定義 –

回答

-2
int rataipa = Convert.ToInt32(NIPA.Text); 
    int uipa, uipa1, uipa2, uipa3, uipa4; 
    if ((rataipa >= 61) && (rataipa <= 69)) 
    { 
     uipa1 = (70 - rataipa)/10; 
     uipa2 = (rataipa - 60)/12; 
    } 
    else if ((rataipa == 60) && (rataipa >= 70) && (rataipa <= 72)) 
    { uipa2 = (rataipa - 60)/12; } 
    else if ((rataipa >= 76) && (rataipa <= 84)) 
    { 
     uipa3 = (85 - rataipa)/13; 
     uipa4 = (rataipa - 75)/10; 
    } 
    else if ((rataipa >= 72) && (rataipa <= 75) || (rataipa == 85)) 
    { uipa3 = (85 - rataipa)/13; } 
    else 
    {   //add this bracket 
    uipa = 1; 
    } 
+1

我已經添加,但符合'int uipa',varibale uipa仍然顯示錯誤 –

+0

這並沒有解決問題。編譯期間仍然存在警告 – MickyD

1

你的代碼的最後分配uipa但你從來沒有真正用它做任何事情。

else uipa = 1; 

要刪除警告,您需要對uipa執行某些操作或完全刪除上述語句。就編譯器而言,uipa沒有任何用處。

如果你決定在說,一個if聲明以後使用uipa,一定要初始化uipa一些默認值太否則你會遇到不同的警告有關unitialised變量

int uipa = 0, ....; // initialise uipa here to a default value 
. 
. 
. 
else uipa = 1; 

if (uipa ==1) // this will solve the variable is assigned but never used problem 
{ 
    // do something 
}