C#做循环

0 c# loops messagebox do-while

我是编程新手.我想创建一个添加10个整数的程序,并显示一个消息框,指示我得到了多少正确的答案.我只用了一个标签盒和一个按钮.这是我使用的代码.它完美地工作,直到消息框显示我只有1个正确的答案.我究竟做错了什么?谢谢.

    }
    int a;
    int b; 
    string sagot;

    private void button1_Click(object sender, EventArgs e)
    {
        int i = 1;
        do
        {
            a = i + i;
            label1.Text = i.ToString() + " + " + i.ToString() + "=";
            sagot = Interaction.InputBox("Please type your answer:");
            i++;

        } while (i <= 10);

        {
            if (a == Convert.ToInt32(sagot))
                    {
                    b++;
                    }
                }
                MessageBox.Show("Number of correct answers: " + b.ToString());
            }
        }
        }
Run Code Online (Sandbox Code Playgroud)

Bug*_*der 8

让我们看看你的代码:

int a; 
int b;  
string sagot; 

private void button1_Click(object sender, EventArgs e) 
{ 
    int i = 1; 
    do 
    { 
        a = i + i; 
        label1.Text = i.ToString() + " + " + i.ToString() + "="; 
        sagot = Interaction.InputBox("Please type your answer:"); 
        i++; 

    } while (i <= 10); 

    { 
        if (a == Convert.ToInt32(sagot)) 
                { 
                b++; 
                } 
            } 
            MessageBox.Show("Number of correct answers: " + b.ToString()); 
        } 
    } 
    } 
Run Code Online (Sandbox Code Playgroud)

所以.

你从1开始,a = i*2,你要求他们进入i + i.你得到他们的回应,并增加我.

第一个问题在这里..你没有测试他们的回应!一旦你再次绕过循环,一个和"sagot"不再被记住以便稍后测试,所以如果你现在不测试..它就消失了.

一旦你做到这一点i = 10它将出现循环..

所以..

现在你问它,如果a与他们给出的答案相同,则在b中添加一个

那么你只做了一次..它只适用于最后一个答案..

因此,是的,你将获得10分中的1分.....

你有几个到多个括号.然而..

所以,告诉你你哪里出错了...不,我不会指出任何问题,如你写"FRED"作为答案..你的应用程序将barf ..

继续你的代码洗牌,以获得你的意思 - 但以你的方式 - 而不是我的.

int a; 
int b;  
string sagot; 

private void button1_Click(object sender, EventArgs e) 
{ 
    int i = 1; 
    do 
    { 
        a = i + i; 
        label1.Text = i.ToString() + " + " + i.ToString() + "="; 
        sagot = Interaction.InputBox("Please type your answer:"); 
        i++; 
             if (a == Convert.ToInt32(sagot)) 
                { 
                b++; 
                } 
    } while (i <= 10); 

            MessageBox.Show("Number of correct answers: " + b.ToString()); 
Run Code Online (Sandbox Code Playgroud)

  • 我不想通过吹掉他所有的代码来混淆这个可怜的家伙,把他的东西交给他完全不同的东西......只是把它拖到了他的意思旁边.我想如果你是新的足以让你挣扎,你就足够新了改变它一切都会让你困惑! (3认同)