问题是我不能写一个do while没有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");
}
}
Run Code Online (Sandbox Code Playgroud)
做到这一点的最好方法就是在你的时间里有条件
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");
Run Code Online (Sandbox Code Playgroud)
这将使循环在发现两个值均为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");
}
}
Run Code Online (Sandbox Code Playgroud)
这将与上面的代码相同,但不是检查值是否7在每个循环的开头,而是无限循环,直到在循环内手动退出
您可能还注意到我使用的语法是
while(/*condition*/)
{
//code here
}
Run Code Online (Sandbox Code Playgroud)
这是您正在使用的语法的较短版本,但它的行为略有不同.如果在输入循环时不满足条件,上面的代码示例将永远不会运行任何代码,而下面的代码
do
{
//code here
}
while(/*condition*/);
Run Code Online (Sandbox Code Playgroud)
do无论条件是否满足,都将始终运行至少一次包含的代码
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |