[英]Do .. While loop in C#?
如何在C#中編寫Do .. While循環?
(編輯:我是一名VB.NET程序員,試圖轉向C#,所以我確實有.NET / VB語法的經驗。謝謝!)
一般形式是:
do
{
// Body
} while (condition);
condition
是bool
類型的某種表達。
就個人而言,我很少寫do / while循環 - for
, foreach
和直接while
循環在我的經驗中更常見。 后者是:
while (condition)
{
// body
}
while
和do...while
之間的區別在於,在第一種情況下,如果條件為false,則不會執行正文 - 而在后一種情況下,它總是在條件被評估之前執行一次。
由於您提到您來自VB.NET,我強烈建議您查看此鏈接以顯示比較。 您也可以使用此 wensite將VB轉換為C#,反之亦然 - 這樣您就可以使用現有的VB代碼,看看它在C#中的樣子,包括循環和兒子下面的任何其他內容。
要回答循環問題,您只需要執行以下操作:
while(condition)
{
DoSomething();
}
你也可以這樣做 - 雖然這樣:
do
{
Something();
}
while(condition);
這是我成功使用的另一個代碼翻譯器 , 另一個很棒的C# - > VB比較網站 。 祝好運!
//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);
非常令人驚訝的是,還沒有人提到過do..while構造的經典例子。 當你想要運行一些代碼,檢查或驗證某些東西時(通常取決於執行該代碼期間發生的事情),並且如果你不喜歡結果,請重新開始。 當您想要一些符合某些約束條件的用戶輸入時,這正是您所需要的:
bool CheckInput(string input) { ... }
...
string input;
...
do {
input=Console.ReadLine();
} while(!CheckInput(input));
這是一個非常通用的形式:當條件足夠簡單時,通常將它直接放在循環結構上(在“while”關鍵字后面的括號內),而不是有一個計算它的方法。
這種用法的關鍵概念是你必須至少要求用戶輸入一次(在最好的情況下,用戶將在第一次嘗試時得到它); 並且在身體至少執行一次之前,條件並沒有多大意義。 這些都是很好的提示,雖然這是工作的工具,但它們在一起幾乎是一種保證。
這是一個打印一些數字的簡單示例:
int i = 0;
do {
Console.WriteLine(++i);
} while (i < 10);
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++;
}
}
}
由喬恩飛碟雙向的答案是正確的,偉大的,但我想舉一個例子對於那些不熟悉while
和do-while
在C#中:
int i=0;
while(i<10)
{
Console.WriteLine("Number is {0}", i);
i++;
}
和:
int i=0;
do
{
Console.WriteLine("Number is {0}", i);
i++;
}while(i<10)
將輸出:
Number is 0
Number is 1
Number is 2
Number is 3
Number is 4
Number is 5
Number is 6
Number is 7
Number is 8
Number is 9
正如我們所料。 然而,重要的是要理解do-while循環總是在第一次執行主體而不管檢查。 這意味着如果我們將i的起始值更改為100,我們將看到非常不同的輸出。
int i=100;
while(i<10)
{
Console.WriteLine("Number is {0}", i);
i++;
}
和:
int i=100;
do
{
Console.WriteLine("Number is {0}", i);
i++;
}while(i<10)
現在while循環實際上不生成輸出:
但是do-while循環生成了這個:
Number is 100
盡管遠遠超過10.這是因為do-while循環的獨特行為總是運行一次,而不像常規while循環。
除了Anthony Pegram的答案之外,你還可以使用while循環,它在進入循環之前檢查條件
while (someCriteria)
{
if (someCondition)
{
someCriteria = false;
// or you can use break;
}
if (ignoreJustThisIteration)
{
continue;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.