2013-10-13 10 views
2

hey les gars im juste apprendre C# à l'école et j'ai du mal à comprendre comment je peux utiliser une variable en dehors d'une instruction if lorsque cette variable est déjà déclaré à l'intérieur d'une déclaration if..heres à quoi ressemble mon programme ........ je dois utiliser la variable "factor" en dehors des ifemememants car cela fait partie d'une équation dont j'ai besoin pour une tâche scolaire ..si je suis absent quelque chose ou vous avez besoin de plus amples informations, plz ne hésitez pas à me direcomment utiliser une variable en dehors d'une instruction if déjà déclarée dans une instruction 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

Retirez le supplément {} avant si et à votre dernière si. C# a blockscope pour les variables et {} indique un bloc donc 'factor' n'est pas défini quand vous atteignez votre instruction if ... – rene

+0

salut j'ai supprimé l'extra {} et j'obtiens quand même une erreur de construction quand j'essaye de faire ma formule, est "totalcalories = facteur * kilos;", il a souligné le facteur et dit que l'utilisation de la variable locale "facteur" –

Répondre

2

pas clair: Mais vous dites que cela ne compile pas? Vous devez affecter une valeur (par défaut) avant d'entrer dans l'instruction if.

int factor = 15; 
+0

Cela semble correct. Même si vous savez que les quatre combinaisons de boutons radio sont couvertes, le compilateur ne l'attrape pas et devrait vous donner une erreur de compilation. – EventHorizon

+0

désolé pourriez-vous s'il vous plaît m'expliquer cela plus en détail? et non il ne compile pas, et en attribuant une valeur, que voulez-vous dire? –

+0

les variables doivent être initialisées avant de pouvoir être référencées. Le simple fait de déclarer une variable ne l'initialise pas. vous devez attribuer une valeur à la variable avant de pouvoir l'utiliser. –

1

Vous avez besoin d'initialiser vos variables, mais si vous voulez retourner un nombre, vous devez le faire avec un type int. Void signifie ne rien retourner. Essayez d'utiliser une méthode int pour cela, et renvoyez la variable.

I.E. radioChecker private int()

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

etc etc

puis placez radioChecker() dans votre vide et vous pouvez avoir des choses différentes se base sur ce qu'il retourne.

Questions connexes