[讀書筆記 ]Stephens' C# Programming with Visual Studio 2010 24-Hour Trainer 第十八章

  • 847
  • 0

閱讀Stephens' C#教材第十八章筆記

 

Chapter 18 Making Choices.
 
本章將學習如何讓程式因為輸入的不同,採取不同的動作流程。
 
主要介紹兩種流程控制的敘述(Statement):IF敘述及SWITCH敘述
 
IF敘述中會有一個狀況比對(condition),如果比對結果為Ture才會執行其內的敘述
 
IF敘述的如下:
 
if (condition) statement;
 
例如:

decimal shipping  = 5.00M;
if (total >= 100) shipping =0 ;

如果Statement超過一行,需要前後用大括弧將Statement的區域(block)圈出來,讓C#編譯器可以辨識。例如:


decimal shipping  = 5.00M;
if (total >= 100) 
{
        shipping =0 ;
        giveFreeGift = true;
}
IF敘述的變形有IF-ELSE, 連鎖 (CASCADING) IF敘述以及巢狀IF敘述,例如:

           // IF-ELSE Statement
            decimal shipping;
            if (total < 100)
            {
                shipping = 5M;
            }
            else
            {
                shipping = 0M;
            }

 


           // CASCADING IF Statement
            decimal shipping;
            if (total < 20)
            {
                shipping = 5M;
            }
            else if (total < 50)
            {
                shipping = 7.5M;
            }
            else if (total < 75)
            {
                shipping = 10M;
            }
            else 
            {
                shipping = 0M;
            }
 

            //Nested IF Statement
            if (inCountry)
            {
                if (inCity)
                {
                    saleTaxRate = 0.09M;
                }
                else
                {
                    saleTaxRate = 0.07M;
                }
            }
            else
            {
                saleTaxRate = 0.05M;
            }

 

SWITCH敘述提供一種簡潔的方式處理類似於連鎖IF敘述的判斷,根據一開始的比對會有一個結果值,然後針對該結果值,執行對應的程式段,例如:


            //Switch Statement
            decimal lodgingPrice;
            switch (hotelChoice)
            {
                case HotelChoice.LuxuryLodge:
                    lodgingPrice = 45;
                    break;

                case HotelChoice.HamiltonArms:
                    lodgingPrice = 80;
                    break;

                case HotelChoice.InvernessInn:
                    lodgingPrice = 165;
                    break;

                default:
                    mesageBox.Show("Please select a hotel");
                    lodgingPrice = 0;
                    break;
            }
SWITCH敘述包含有switch, case, break及default等元素,遇見 break便會結束SWITCH敘述,如果有default元素,則在比對結果值找不到匹配的情況下,會執行此default元素後的程式碼。
 
ConferenceCoster 程式示範使用IF及SWITCH敘述計算費用
 
SimpleEdit程式示範使用巢狀IF判斷是否檔案已修改,或是使用者按下OK鈕
 
 
TRY IT中示範如何設計一個OrderForm計算費用程式