循环10次添加输入,使用for和do while在C#中循环?

循环10次添加输入,使用for和do while在C#中循环?,c#,for-loop,do-while,C#,For Loop,Do While,我刚开始学习基础C#课程,但我很难得到一份工作任务。我建立了一个基本的计算器,它工作得很好。现在我必须添加一个名为“Sum”的新按钮,它将从我的一个框(number1Txtbox)中获取一个输入,并通过一个循环将其添加到自身10次 我翻阅了一页又一页的c#book,却弄不懂这本。我想出了如何用计数器等初始化循环,我就是不能让它在我的生活中工作 我被告知使用for循环,然后切换到do while循环。这对我来说没什么意义,我想我可以用一个for循环来实现。所以我的问题是: 1) 我是否需要切换到D

我刚开始学习基础C#课程,但我很难得到一份工作任务。我建立了一个基本的计算器,它工作得很好。现在我必须添加一个名为“Sum”的新按钮,它将从我的一个框(number1Txtbox)中获取一个输入,并通过一个循环将其添加到自身10次

我翻阅了一页又一页的c#book,却弄不懂这本。我想出了如何用计数器等初始化循环,我就是不能让它在我的生活中工作

我被告知使用for循环,然后切换到do while循环。这对我来说没什么意义,我想我可以用一个for循环来实现。所以我的问题是:

1) 我是否需要切换到Do while循环来执行此操作?
2) 我做错了什么

以下是我到目前为止所做的,当我在文本框中输入一个数字后尝试点击“求和”按钮时,它会使我的程序冻结:

private void sumBtn_Click(object sender, EventArgs e)
{
    int counter;
    int loopAnswer;
    int number1;

    number1 = int.Parse(number1Txtbox.Text);

    for (counter = 1; counter <= 10; counter++)
    {
        loopAnswer = number1 + number1;
        do
        {
            loopAnswer = loopAnswer + number1;
        } while (counter <= 10);

        equalsBox.Text = loopAnswer.ToString();
    }
}
private void sumBtn\u单击(对象发送方,事件参数e)
{
整数计数器;
int循环回答;
整数1;
number1=int.Parse(number1Txtbox.Text);

对于(counter=1;counter你可以混合东西。你可以这样做:

private void sumBtn_Click(object sender, EventArgs e)
{
    int counter;
    int loopAnswer = 0;
    int number1 = int.Parse(number1Txtbox.Text);

    for (counter = 1; counter <= 10; counter++)
    {
        loopAnswer += number1; //same as loopAnswer = loopAnswer + number1;
    }
    equalsBox.Text = loopAnswer.ToString();
}
private void sumBtn\u单击(对象发送方,事件参数e)
{
整数计数器;
int-loopAnswer=0;
int number1=int.Parse(number1Txtbox.Text);

对于(counter=1;counter它会冻结,因为当它进入
do while
循环时,
计数器
从未更改。如果它从未更改,
counter
private void sumBtn\u单击(对象发送方,事件参数e)
{
整数计数器;
int-loopAnswer=0;
整数1;
number1=int.Parse(number1Txtbox.Text);

对于(counter=1;counter您的程序冻结,因为

        do
        {
            loopAnswer = loopAnswer + number1;
        } while (counter <= 10);
do
{
loopAnswer=loopAnswer+数字1;
}while(counter您的内部循环(while)无休止地运行,因为计数器从未增加,这就是您的程序挂起的原因。在一行上设置一个断点,以便能够调试您的程序并更好地了解循环的工作方式


要解决此分配,您只需要一个循环,而不是嵌套的循环。使用何种循环机制无关紧要。

此代码导致无限循环(这就是冻结的原因):


用于(counter=1;counter为了举例说明,让我们假设number1=4。当您执行行
loopAnswer=number1+number1;
时,
loopAnswer
的结果值将始终为8。如果您希望
loopAnswer
递增,那么您应该使用
loopAnswer=loopAnswer+number1;
,或缩写语法
loopAnswer+=number1;

关于使用
for
循环与
do while
循环的比较,我猜这不是同时使用两个循环的问题,而是使用
for
循环来说明概念,然后切换到使用
do while
循环来说明概念

您可以使用如下的for循环完成此练习:

for (counter = 1; counter <= 10; counter++)  
{  
    loopAnswer += number1; 
}

equalsBox.Text = loopAnswer.ToString();  
int counter = 1;
do  
{  
    loopAnswer += number1;  
    counter++;
} while (counter <= 10);  

equalsBox.Text = loopAnswer.ToString();  

用于(counter=1;counter除了Adrians answer之外,程序冻结的原因是do while循环的条件是计数器必须小于或等于10。问题是do while循环位于增加计数器的循环内。这意味着do while永远无法完成执行,因为for循环(增加计数器)永远无法完成一次迭代。@AnuragRanjhan,他的第一行说这是一个作业。所以我猜是的。对于一个全新的初学者程序员来说,这是一个很好的问题。感谢您将代码和它作为作业的事实包括在内。作业说"使用
for
循环,然后切换到
do…while
循环,它们可能意味着两种不同的解决方案,这样你就可以展示你知道如何同时使用这两种解决方案。只是对切换到do while循环的评论。我相信他们是在要求你从for循环切换到do while循环,这样你就可以获得使用这两种结构和方法的经验能够更好地在将来决定使用哪个循环构造。确实,您只需要一个for循环就可以完成此操作,他们要求您执行两次操作,一次使用for,一次使用do-while。@Adrian提供了一个关于for循环的清晰答案,您应该接受所提供的内容并替换for循环使用do-while循环。do-while循环不应该增加计数器吗?感谢Adrian和其他人,我实际上学到了一些东西,而不仅仅是得到一个答案。我已经喜欢这个网站了!
        do
        {
            loopAnswer = loopAnswer + number1;
        } while (counter <= 10);
counter = 1;
do {
    loopAnswer += number1;
    counter++;
} while(counter <= 10);
for (counter = 1; counter <= 10; counter++)
{
    loopAnswer = number1 + number1;
    do
    {
        loopAnswer = loopAnswer + number1;
    } while (counter <= 10);

    equalsBox.Text = loopAnswer.ToString();
}
for (counter = 1; counter <= 10; counter++)  
{  
    loopAnswer += number1; 
}

equalsBox.Text = loopAnswer.ToString();  
int counter = 1;
do  
{  
    loopAnswer += number1;  
    counter++;
} while (counter <= 10);  

equalsBox.Text = loopAnswer.ToString();