如何在while while循环中跳过?

时间:2016-12-21 15:17:04

标签: c#

问题是我不能在没有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");

      }
}

2 个答案:

答案 0 :(得分:8)

这样做的最好方法就是让你的状态

true

当它发现两个值都是7

时,这将使循环自动终止

根据@ AlexK的回答,你也可以让while没有条件,只包含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

无论条件是否满足,都将始终运行<input type="text" placeholder="name" name="name"> 内包含的代码至少一次

答案 1 :(得分:0)

你有两个可能性。要么将你的条件直接设置到while - 部分,因为Alfie已经说过或使用无限循环。如果您的循环有多个退出路径,这尤其有用,例如:

while(true)
{
    if(a == 3) break;
    if(b == 7) break;
    // some more code
}

当然这段代码非常人为,很容易被if(a == 3 || b == 7) break取代,但有时候你不能(或者不想)将所有条件合并为一个。此外,如果您希望在某些条件下中断迭代,而在另一个条件上中断continue(例如,为了减少代码的嵌套),这可能很有用。