2013-10-13 73 views
2

嘿,大家好我只是在學校學習C#,並且在計算if語句時如何使用變量已經在if語句中聲明瞭..我的程序看起來像........我必須在if語句之外使用「factor」變量,因爲它是我需要爲學校作業的等式的一部分..如果我丟失任何東西,你需要更多的信息,大家以後不要猶豫,告訴我如何在已經在if語句中聲明的if語句之外使用變量

public caloriesCalculator() 
     { 
      InitializeComponent(); 
     } 

     private void calculate_Click(object sender, EventArgs e) 
     { 
      double kilos; 
      double pounds; 
      int factor; 
      double totalcalories; 
      pounds = double.Parse(lbsTxt.Text); 
      kilos = pounds * 0.45; 
      kilosTxt.Text = kilos.ToString(); 


      { 

       if (maleRadio.Checked && activeRadio.Checked) 
       { 
        factor = 15; 
       } 

       if (femaleRadio.Checked && activeRadio.Checked) 
       { 
        factor = 12; 
       } 

       if (maleRadio.Checked && inactiveRadio.Checked) 
       { 
        factor = 13; 
       } 

       if (femaleRadio.Checked && inactiveRadio.Checked) 
       { 
        factor = 10; 
       } 
      } 
     } 
+1

刪除額外{}之前,如果和你最後一次如果。 C#有變量block blocks {}表示塊因此,當你到達你的if語句時沒有定義... factor ... – rene

+0

嗨我刪除了額外的{},並且在嘗試製作我的公式時仍然遇到構建錯誤是「totalcalories = factor * kilos;」,它有下劃線的因子,並說使用局部變量「factor」 –

回答

2

不太清楚:但是你說這個不能編譯?在進入if語句之前,您需要指定一個值(缺省值)。

int factor = 15; 
+0

這聽起來是正確的。即使你知道所有四種組合的單選按鈕都被覆蓋了,編譯器也不會理解這一點,並且會給你一個編譯錯誤。 – EventHorizon

+0

抱歉,您能否詳細解釋一下我的問題?沒有它不編譯,並分配一個值,你是什麼意思? –

+0

變量在被引用之前需要初始化。只是聲明一個變量不會初始化它。您需要先爲該變量賦值,然後才能使用它。 –

1

你確實需要初始化你的變量,但是如果你想返回一個數字,你需要用一個int類型來完成。虛空意味着什麼都不返回。嘗試使用int方法來做到這一點,並返回變量。

I.E.私人詮釋radioChecker()

if(this happens) { 
factor = 15; 
return factor; 
} 

等等等等

然後將radioChecker()內的空隙,你可以發生基於它返回有不同的東西。