while和for語句都在迴圈開始的時候測試它們的布林運算式。這意味著假如在首次測試時,布林運算式就求值為false,那麼迴圈主體一次都不會運行。do語句則不同,它的布林運算式是在每次重複之後求值的,所以主體至少會執行一次。
do語句的文法如下(不要忘記最後的分號):
do
statement
while (booleanExpression);
如果迴圈主體由多個語句構成,請使用一個語句塊。下面是在控制台上輸出0~9的那個例子的do語句版本:
int i = 0;
do
{
Console.WriteLine(i);
i++;
}
while (i != 10);
break和continue語句
在前文我們曾用break語句來跳出switch語句。除此之外,還可以使用break語句來跳出一個迴圈。執行break之後,系統會立即終止迴圈,並從迴圈之後的第一個語句繼續執行。在這種情況下,迴圈的“更新”和“繼續”條件都不會重新判斷。
與此相反,continue語句會造成當前迴圈結束,並立即開始下一次迴圈(在對布林運算式進行重新求值之後)。下面是在控制台上輸出0~9的那個例子的另一個版本,這一次將使用break和continue語句:
int i = 0;
while (true)
{
Console.WriteLine("continue " + i);
i++;
if (i != 10)
continue;
else
break;
}
這段代碼看起來讓人非常難受。許多編程指南都建議小心使用continue,或者根本不要使用它,否則很容易造成難以理解的代碼。continue的行為也令人捉摸不定。例如,假如在一個for語句中執行continue,那麼會在運行了for語句的“更新”部分之後,才開始下一次迴圈。
在下面的例子中,我們將寫一個do語句來將一個數字轉換成字串形式。
·使用do語句
1. 在Visual Studio 2005中開啟DoStatement項目,它位於My Documents檔案夾下的\Microsoft Press\Visual CSharp Step by Step\Chapter 5\DoStatement子檔案夾中。
選擇“調試”|“開始執行(不調試)”。
Visual Studio 2005將開始產生並運行Windows應用程式。
應用程式將顯示一個表單,其中包含兩個文字框和一個Show Steps(顯示步驟)按鈕。在上方的文字框中輸入一個正數(我們使用的演算法還不支援負數),然後單擊Show Steps按鈕,下方的文字框就會顯示建立這個數位字串形式所需的步驟。
注意 這個簡單的例子展示了如何使用do迴圈將數字轉換成字串。但要注意一點,.NET Framework提供了Convert.ToString方法來做同樣的事情。在自己的應用程式中執行類似任務時,應該使用該方法。