迴圈敘述 - while 敘述句

while 敘述句根據一段特定條件值,重複執行某段程式碼區塊,每次程式碼區塊執行完畢重新檢視是否符合此條件值,是則再次執行相同的程式區塊,否則跳出反複執行的程式區塊,往下執行區塊以後的程式碼,其語法如下:
while(express) 
{
// while 程式區塊 …
}
緊接在 while 關鍵字後面的小括弧裏是一段判斷式,其運算結果回傳一個布林值, true則繼續執行 while 程式區塊中的程式碼,否則跳出 while ,緊接著執行迴圈以後的程式碼。

使用 while 迴圈敘述,重複執行數值1 加到100的加總運算。
class Program
{
    static void Main(string[] args )
    {
        int intBegin = 0;
        const int intEnd = 100;
        int intSum = 0;

        while (intBegin <= intEnd)
        {
            intBegin++;
            intSum += intBegin;

            if (intBegin % 10 == 0)
            {
                Console.WriteLine("1 ~ {0} 的加總等於{1} ", intBegin, intSum);
            }
        }
        Console.ReadLine(); 
    }
}
使用 while 敘述句,於其後的括弧中加入判斷式,當 intBegin 小於或是等於 intend 常數值,跳出 while 程式區塊,否則繼續進行數值的加總操作。 while 還有另外一個型式 - do-while,與 while 的差異在於,迴圈判斷式放在迴圈執行完畢之後。

do-while 敘述句

do-while迴圈類似上述的while敘述,其中的差異主要在於每一次程式區塊執行完畢之後,才進行條件值的判斷,若是符合條件值則進行下一次迴圈,否則即跳出迴圈,換句話說,do-while敘述於程式每一次迴圈執行完畢之後作條件式判斷, while 則於每一次迴圈執行前作判斷,以下為 do-while 語法:
do 
{
    // do程式區塊
// …
} while(condition expression )
相較於 while 敘述,此次的條件判斷式於程式區塊執行完成之後,也因此do-while 迴圈當中的程式區塊至少會執行一次。
class Program
{
    static void Main(string[] args)
    {
        int intBegin = 0;
        const int intEnd = 100;
        int intSum = 0;
        do
        {
            intBegin++;
            intSum += intBegin;

            if (intBegin % 10 == 0)
            {
                Console.WriteLine
    ("1 ~ {0} 的加總等於{1} ", intBegin, intSum);
            }
        }while (intBegin <= intEnd)

        Console.ReadLine();
    }
}
do-while 迴圈中,由於 while 判斷式被移至迴圈的下方,判斷式的運算在迴圈完成之後進行,因此相較於 while 迴圈而言, do-while 迴圈裏的區塊程式碼,至少會執行一次,底下利用一個範例說明這兩種迴圈的差異。
class Program
{
    static void Main(string[] args)
    {
        int intBegin1 = 10 ;
        do
        {
            intBegin1++;
            Console.WriteLine("intBegin1="+intBegin1);
        } while (intBegin1 < 10);

        int intBegin2 = 10;   
        while (intBegin2 < 10) 
        {
            intBegin2++;
            Console.WriteLine("intBegin2=" + intBegin2); 
        } 
        Console.ReadLine();
    }
}
這個範例設計了兩個 while 迴圈, do-while 迴圈一開始將變數 intBegin1 加 1 並且輸出其值,然後 while 判斷其值是否依然小於 10 ,是的話才進行下一次的迴圈。 另外一個迴圈 while 判斷變數 intBegin2 的值是否小於 10 ,是的話才進行迴圈裏的程式區塊。
intBegin1=11
intBegin1 與 intBegin2 這兩個變數的初始值都是 10 , do-while 執行一次之後才結束迴圈,而 while 迴圈因為一開始便進行變數值的判斷,因此其迴圈區塊並沒有執行便結束。

沒有留言: