do...while循環(huán)與while循環(huán)不同,它首先執(zhí)行一次循環(huán)體,然后判斷條件,屬于直到型循環(huán),即直到條件為假時(shí)退出循環(huán)體,執(zhí)行循環(huán)后面的語(yǔ)句,其語(yǔ)法結(jié)構(gòu)如下:
do
{
循環(huán)體語(yǔ)句;
}while(表達(dá)式);
其中:表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式或其它值為“真”或“假”的表達(dá)式,其用于使循環(huán)進(jìn)行下去的條件。
循環(huán)體語(yǔ)句可以是簡(jiǎn)單語(yǔ)句或復(fù)合語(yǔ)句。
其執(zhí)行過(guò)程為:
首先執(zhí)行一次循環(huán)體語(yǔ)句;然后測(cè)試循環(huán)進(jìn)行的條件,即判斷表達(dá)式的計(jì)算結(jié)果,如果結(jié)果為“真”(true)則重復(fù)執(zhí)行循環(huán)體語(yǔ)句;直到表達(dá)式的結(jié)果值為“假”(false)時(shí),退出循環(huán),執(zhí)行do…while循環(huán)后面的語(yǔ)句。
注意:
(1)C#中的do...while循環(huán)與C語(yǔ)言或C++中的循環(huán)稍有不同,其用于判斷循環(huán)是否繼續(xù)執(zhí)行的表達(dá)式的值只能為”true“或”false“,而C語(yǔ)言或C++中可用是否為非0值來(lái)判斷;
(2)do...while循環(huán)中的表達(dá)式括弧后面必須有一個(gè)分號(hào)(;)(見(jiàn)語(yǔ)法結(jié)構(gòu)中的紅色分號(hào)),如丟掉此分號(hào),則會(huì)報(bào)告語(yǔ)法錯(cuò)誤。
該循環(huán)的特點(diǎn):
do…while循環(huán)不管條件是否滿足,循環(huán)體中的語(yǔ)句至少被執(zhí)行一次。
下面用使用一個(gè)例子來(lái)說(shuō)明:
using System;
namespace DoWhile
{
class Program
{
//此例演示求1-100之間的整數(shù)和
static void Main(string[] args)
{
//i用來(lái)存儲(chǔ)當(dāng)前的整數(shù),sum保存所求之和
int i = 0, sum = 0;
do
{
i++;
sum += i; //每次都將i加入sum中
}
while (i < 100);
Console.WriteLine("1-100之間的整數(shù)和為:{0}", sum); //輸出和
Console.ReadKey();
}
}
}
輸出結(jié)果如下:

下面再用一個(gè)例子來(lái)說(shuō)明do...while語(yǔ)句的使用:
這個(gè)例子演示循環(huán)輸入并輸出字符串的例子,直到用戶輸入quit后退出循環(huán)。
using System;
namespace DoWhileString
{
class Program
{
static void Main(string[] args)
{
string str; //存儲(chǔ)用戶輸入的字符
string tmpStr;
Console.WriteLine("--------輸入并輸出字符串程序-------");
do
{
Console.Write("/n請(qǐng)輸入一個(gè)字符串:");
str = Console.ReadLine();
tmpStr = str.ToLower(); //將字符串轉(zhuǎn)換為小寫(xiě)
if (tmpStr != "quit")
Console.WriteLine("/n輸出:" + str);
}
while (tmpStr != "quit");
Console.WriteLine("你已經(jīng)成功退出do...while循環(huán)。");
Console.ReadKey();
}
}
}
運(yùn)行結(jié)果為:

新聞熱點(diǎn)
疑難解答
圖片精選