2013-10-13 40 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()内的空隙,你可以发生基于它返回有不同的东西。