C# 如何在do-while循环中跳过?
问题是如果没有C# 如何在do-while循环中跳过?,c#,C#,问题是如果没有while部分,我就无法编写do while循环。。。我能跳过它吗?还是 // 9. Keep adding numbers untill you add number 7 twice in a row . int a; int b; do { Console.WriteLine("add number:"); a = int.Parse(Console.ReadLine()); Console.WriteLine("add numb
while
部分,我就无法编写do while
循环。。。我能跳过它吗?还是
// 9. Keep adding numbers untill you add number 7 twice in a row .
int a;
int b;
do
{
Console.WriteLine("add number:");
a = int.Parse(Console.ReadLine());
Console.WriteLine("add number:");
b = int.Parse(Console.ReadLine());
if (a == 7 && b == 7)
{
break;
Console.WriteLine("end");
}
}
最好的方法是在你的身体里保持这种状态
while(a != 7 || b != 7)
{
Console.WriteLine("add number:");
a = int.Parse(Console.ReadLine());
Console.WriteLine("add number:");
b = int.Parse(Console.ReadLine());
}
Console.WriteLine("end");
这将使循环在发现两个值均为7时自动终止
根据@AlexK的回答,您还可以使while没有条件,只包含true
while(true)
{
Console.WriteLine("add number:");
a = int.Parse(Console.ReadLine());
Console.WriteLine("add number:");
b = int.Parse(Console.ReadLine());
if (a == 7 && b == 7)
{
break;
Console.WriteLine("end");
}
}
这将与上面的代码相同,但它不会在每个循环开始时检查值是否为7
,而是会无限循环,直到在循环内手动退出
您可能还注意到,我使用的语法是
while(/*condition*/)
{
//code here
}
这是您正在使用的语法的一个较短版本,尽管其行为略有不同。如果输入循环时不满足条件,则上面的代码示例将永远不会运行任何代码,下面的代码
do
{
//code here
}
while(/*condition*/);
将始终至少运行一次
do
中包含的代码,无论是否满足条件您有两个可能的标题。或者直接将条件设置为,而-部分,就像Alfie已经说过的那样,或者使用无限循环。如果循环有多个退出路径,这尤其有用,例如:
while(true)
{
if(a == 3) break;
if(b == 7) break;
// some more code
}
当然,这段代码是精心设计的,如果(a==3 | | b==7)break
很容易被替换,但有时您无法(或不想)将所有条件合并为一个条件。此外,如果您想在某些条件下中断迭代,但在另一个条件下继续(例如减少代码嵌套),这可能是有用的。那么while(true){…}
是的,我是在alfie的帮助下完成的