我正在尝试学习C#,我想接受我编写的代码,看看我是否可以更改它并使用do / while和while / do。我一整天都搞乱了这一点,我很难抓住do / while和while / do由于某种原因。如果有人能告诉我这将是多么伟大。此外,如果您这样做或可以,请解释一下。试着学习,但我很困惑。
private void calculate_Click(object sender, EventArgs e)
{
int answer = 0;
//int i = int.Parse(textBox1.Text);
int j = int.Parse(textBox2.Text);
int multiplyBy = int.Parse(multiplier.Text);
for (int i = int.Parse(textBox3.Text); i <= j; i++)
{
//answer = answer + i;
//listBox1.Items.Add(answer.ToString());
answer = multiplyBy * i;
listBox1.Items.Add(i + " times" + multiplyBy + " = " + answer.ToString());
}
}
答案 0 :(得分:8)
while ( condition ) { LoopBody() }
执行LoopBody()
零次或多次。
condition
之前执行循环体:只要condition
为true
,就会执行循环体。 do { LoopBody() } while ( condition )
执行LoopBody()
一次或多次。
condition
被检查。 完全相当于
LoopBody() ;
while ( condition )
{
LoopBody() ;
}
应该注意的是,如果循环体不会改变条件,那么循环永远不会终止。
编辑注意:for
适用于所有意图和目的。您的for
循环:
for (int i = int.Parse(textBox3.Text); i <= j; i++)
{
LoopBody() ;
}
大致相当于:
int i = int.Parse(textBox3.Text) ;
while ( i <= j )
{
LoopBody() ;
i++ ;
}
“粗略的一点是因为循环索引器的作用域是for
循环,就像它被写入一样
{//引入范围 int i = int.Parse(textBox3.Text); 而(i <= j) { LoopBody(); i ++; } } //范围结束
这与for循环并不完全相同,因为如果你在方法中引入一个新的i
,你会得到一个关于重复变量名的编译器。 for
- 循环没有这个问题。编译器非常满意这样的事情:
if ( condition-A )
{
for ( int i = 0 ; i < 10 ; ++i )
{
DoSomethingUseful(i) ;
}
}
else
{
for ( int i = 0 ; i < 10 ; ++i )
{
DoSomethingElseUseful(i) ;
}
}
而这样的事情会导致编译器发牢骚:
if ( condition-A )
{
int i = 0 ;
while ( i < 10 )
{
DoSomethingUseful(i) ;
++i ;
}
}
else
{
int i = 0 ;
while ( i < 10 )
{
DoSomethingElseUseful(i) ;
++i ;
}
}
希望这有帮助。
重构代码以使用while
循环会给你这样的东西:
private void calculate_Click(object sender, EventArgs e)
{
int i = int.Parse( textBox3.Text ) ;
int j = int.Parse( textBox2.Text ) ;
int multiplyBy = int.Parse( multiplier.Text ) ;
while ( i <= j )
{
int answer = multiplyBy * i ;
string value = string.Format( "{0} times {1} = {2}" , i , mulitplyBy , answer ) ;
listBox1.Items.Add( value ) ;
++i ;
}
return ;
}
答案 1 :(得分:0)
do/while
的一般形式如下:
do
{
// Perform some actions here.
} while (some condition); // Break out of the loop once this condition is satisfied.
'某些条件'属于bool
类型。 do/while
和while
之间的主要区别在于,如果在do循环开始时'some condition'为false,则循环体将不会被执行
do/while
循环的基本点是旋转循环执行某些操作或操作,然后在满足while
条件后突破循环。作为参考,您可以从MSDN中看到一个非常简单的示例here。在大多数情况下,随着您获得更多经验,您可能会发现自己在do / while变种上使用for,foreach和while循环。
答案 2 :(得分:0)
当你的循环体必须至少执行一次时使用do/while
,否则,使用while
。