2013-03-07 6 views
0

Mon problème est que mon programme ont du mal à circuler ici entre les fonctions de button21 selon ordre dans lequel les instructions if est écrit le si fonctionne de la fonction, mais l'autre coutume. dans le code suivant je l'ai mis pour être button2 qui fonctionne cependant je veux que les deux boutons 1 et deux fonctionnent avec button21 s'ils sont choisis. Cependant, le réglage de la fonction qw == 1 est celui qui fonctionne dans ce programme et non qw == 2 alors quel est le problème avec mon code de programme? le code est affiché:Trouble with si la circulation

namespace Matematisk_indlæring 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     Random RND = new Random(Guid.NewGuid().GetHashCode()); 
     Random RND2 = new Random(Guid.NewGuid().GetHashCode()); 
     private void quitToolStripMenuItem_Click(object sender, EventArgs e) 
     { 
      this.Close(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      button1.Hide(); 
      button2.Hide(); 
      button3.Hide(); 
      button4.Hide(); 
      button5.Hide(); 
      label1.Show(); 
      textBox1.Show(); 
      button21.Show(); 
      double qw = 1; 
      textBox2.Text = qw.ToString(); 
      string q = "1+1"; 
      label1.Text = q; 
      int qq = 1 + 1; 
      textBox3.Text = qq.ToString(); 
     } 


     private void button21_Click(object sender, EventArgs e) 
     { 
      double qqq = Convert.ToDouble(textBox1.Text); 
      double qq = Convert.ToDouble(textBox3.Text); 
      int qw = Convert.ToInt32(textBox2.Text); 
      if (qw == 1) 
      { 
       if (qq == qqq) 
       { 

        MessageBox.Show("succes"); 
        int qws1; 

        int qws; 

        qws1 = RND2.Next(51, 100); 


        qws = RND.Next(0, 50); 

        qq = qws1 + qws; 
        textBox3.Text = qq.ToString(); 
        string tese = qws.ToString(); 
        string tese2 = qws1.ToString(); 
        label1.Text = tese2 + "+" + tese; 

       } 

        if (qw == 2) 
        { 
         if (qq == qqq) 
         { 

          MessageBox.Show("succes"); 
          int qws1; 

          int qws; 

          qws1 = RND2.Next(51, 100); 


          qws = RND.Next(0, 50); 

          qq = qws1 - qws; 
          textBox3.Text = qq.ToString(); 
          string tese = qws.ToString(); 
          string tese2 = qws1.ToString(); 
          label1.Text = tese2 + "-" + tese; 

         } 




       } 
      } 
     } 
     private void button2_Click(object sender, EventArgs e) 
     { 
      button1.Hide(); 
      button2.Hide(); 
      button3.Hide(); 
      button4.Hide(); 
      button5.Hide(); 
      label1.Show(); 
      textBox1.Show(); 
      button21.Show(); 
      double qw = 2; 
      textBox2.Text = qw.ToString(); 
       string q = "1-1"; 
       label1.Text = q; 
       int qq = 1 - 1; 
       textBox3.Text = qq.ToString(); 
     } 
    } 
} 
+0

Bienvenue sur Stackoverlfow, s'il vous plaît lire [FAQ] et [demander] deux ou trois fois .. –

+0

Cool: quelqu'un mettre le support Unicode C de # 's à utiliser. – nneonneo

+0

@nneonneo: Pas cool: la mise en évidence de la syntaxe de SO selfs sur elle :-( –

Répondre

1

Vous avez au moins une faille logique ici.

Dans button21_Click: d'abord, vous testez si qw est 1, puis juste après, vous testez si elle est 2. Mais aucun code ne change qw. Alors, comment peut-il soudainement passer de 1 à devenir 2?

Le code de cette méthode est essentiellement:

int qw = Convert.ToInt32(textBox2.Text); 

if (qw == 1) 
{ 
    if (qq == qqq) 
    { 
     // code which does not modify qw 
    } 

    if (qw == 2)   // wrong placement of this if-statement! 
    { 
     // code which can never be called! 
    } 
} 

Comme vous pouvez le voir, le contrôle ne peut jamais atteindre if (qw == 2) dans cette méthode parce que vous avez emboîtés les ifs mal .. Vous pouvez le voir plus facilement si vous réparer l'indentation.

aussi: Du burde Bruke engelsk klassenavn, ikke dansk :-)

+0

thats la fonction du bouton 1 et 2 ils ont tous deux changer le résultat possible de la double QW comme vous pouvez éventuellement voir qu'ils écrivent le numéro dans une zone de texte, button21 saisit ce numéro dans la zone de texte – user2010884

+0

Ye s, mais vous avez imbriqué les erreurs if dans 'button21_Click'. – Grubl3r

+0

s'il vous plaît expliquez-moi quelle partie de l'imbrication je fais mal parce que je ne peux vraiment pas voir le problème dans ma configuration puisque le numéro de la zone de texte est saisi avant tout autre?? – user2010884