做..在C#while循环吗?

问题描述:

如何在C#中编写Do .. While循环?做..在C#while循环吗?

(编辑:!我是一个程序员VB.NET试图使移动到C#,所以我确实有.NET/VB语法由于经验)

+11

MSDN是这样的问题的金矿。 C#'do'关键字:http://msdn.microsoft.com/en-us/library/370s1zax(VS.80).aspx – 2010-03-29 15:19:37

+0

既然你来自VB.NET,看看我提供的一些链接下面看循环的语法比较以及其他任何你需要在下面回复 – dferraro 2010-03-29 15:43:56

//remember, do loop will always execute at least once, a while loop may not execute at all 
//because the condition is at the top 
do 
{ 
    //statements to be repeated 
} while (condition); 
+0

你的条件不是布尔表达式... – 2010-03-29 15:15:58

+0

@Jon Skeet - 对不起,我通常是VB – BlackICE 2010-03-29 15:16:40

+1

do {} while(true ); – 2010-03-29 15:16:42

这里有一个简单的例子,将打印一些数字:

int i = 0; 

do { 
    Console.WriteLine(++i); 
} while (i < 10); 

的一般形式是:

do 
{ 
    // Body 
} while (condition); 

condition是一些表达键入bool

我个人很少编写do/while循环 - for,foreach和直接while循环在我的经验中更为常见。后者是:

while (condition) 
{ 
    // body 
} 

whiledo...while之间的区别是,在第一种情况下,身体会永远来,如果条件为假开始与执行 - 而在后一种情况下,它总是执行一次前该条件被评估过。

+11

这就是关键。如果你想保证第一次执行,使用do-while。否则,虽然确实是一个更好的方法。 – 2010-03-29 15:21:08

using System; 

class MainClass 
{ 
    public static void Main() 
    { 
     int i = 0; 
     do 
     { 
      Console.WriteLine("Number is {0}", i); 
      i++; 
     } while (i < 100); 
    } 
} 

另一种方法是

using System; 

class MainClass 
{ 
    public static void Main() 
    { 
     int i = 0; 
     while(i <100) 
     { 
      Console.WriteLine("Number is {0}", i); 
      i++; 
     } 
    } 
} 
+0

感谢您的明确解释 – 2010-03-29 16:57:50

除了安东尼Pegram的回答,您还可以使用while循环,它检查条件之前进入循环

while (someCriteria) 
{ 
    if (someCondition) 
    { 
     someCriteria = false; 
     // or you can use break; 
    } 
    if (ignoreJustThisIteration) 
    { 
     continue; 
    } 
} 

相当令人惊讶的是,没有人提到do..while结构的经典例子。做..当你想运行一些代码,检查或验证某些东西(通常取决于执行代码过程中发生的事情),并且如果你不喜欢结果,重新开始。这正是你需要什么,当你想要一个适合一些限制某些用户输入:

bool CheckInput(string input) { ... } 
... 
string input; 
... 
do { 
    input=Console.ReadLine(); 
} while(!CheckInput(input)); 

这是一个相当通用的形式:当条件很简单,这是常见的,直接把它放在循环结构(内部“while”关键字后的括号),而不是有一个方法来计算它。

这种用法的关键概念是,您必须至少请求一次用户输入(在最好的情况下,用户将在第一次尝试时就能正确使用)。并且在身体至少执行过一次之前,条件没有多大意义。这些都是很好的提示,而且是工作的工具,它们两者几乎都是一种保证。

既然你提到你是来自VB.NET,我强烈建议检出this link来显示比较。您还可以使用this wensite将VB转换为C#,反之亦然 - 因此您可以使用现有的VB代码,并查看它在C#中的外观,包括循环和儿子下的其他任何东西。

要回答这个循环的问题,您简单想要做的事,如:

while(condition) 
{ 
    DoSomething(); 
} 

你也可以做 - 而像这样:

do 
{ 
    Something(); 
} 
while(condition); 

这里的another code translator我已经成功使用,和another great C#->VB comparison website。祝你好运!

+0

感谢您的比较页面的链接..这正是我需要的 – 2010-03-29 17:50:47