【发布时间】:2012-03-19 20:34:26
【问题描述】:
我刚开始学习基本的 C# 课程,但在分配工作时遇到了麻烦。我建立了一个基本的计算器,它工作正常。现在我必须添加一个名为“Sum”的新按钮,该按钮将从我的一个框(number1Txtbox)中获取输入,并通过循环将其添加到自身 10 次。
我翻遍了我的 c# 书籍的页面,但无法弄清楚这一点。我想出了如何用计数器等初始化循环,但我无法让它终生工作。
有人告诉我使用 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();
}
}
谢谢大家!
【问题讨论】:
-
除了 Adrians 的回答之外,您的程序冻结的原因是因为您的 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 循环。