1. 程式人生 > >C#程式設計基礎第四課:c#中的邏輯運算子、多重if語句、巢狀if語句的使用

C#程式設計基礎第四課:c#中的邏輯運算子、多重if語句、巢狀if語句的使用

知識點:邏輯運算子、多重if語句、巢狀if語句

1、邏輯運算子

練習1:邏輯或、邏輯與運算子的使用

本次計算機考試成績規定:筆試成績等於100分且機試成績大於等於60分,或筆試成績大於等於60分且機試成績等於100分,     輸出“成績優秀”, 否則輸出“繼續努力”

       static void Main(string[] args)
        {
              /*
             *用程式描述 :
             * 筆試成績等於100分且機試成績大於等於60分,
             * 或筆試成績大於等於60分且機試成績等於100分
             * 輸出“成績優秀”
             * 否則輸出“繼續努力”
             */
            Console.Write("請輸入筆試成績:");
            double written = double.Parse(Console.ReadLine());
            Console.Write("請輸入機試成績:");
            double lab = double.Parse(Console.ReadLine());
            if (written == 100 && lab >= 60 || written >= 60 && lab == 100)
            {
                Console.WriteLine("成績優秀");
            }
            else
            {
                Console.WriteLine("繼續努力");
            }
            Console.ReadLine();
        }

運算子的優先順序:

  • 最高的優先順序:小括號,即()
  • 最低的優先順序:賦值運算子,即=
  • 優先順序順序:! > 算術運算子 > 比較運算子 > && > ||
  • 當運算子較多,無法確定運算子執行順序時,可以使用小括號控制一下順序,如(written == 100 && lab >= 60) || (written >= 60 && lab == 100)

練習2:邏輯非運算子的使用

判斷輸入天氣,不下雨就集合,下雨則不集合

        static void Main(string[] args)
        {
            Console.WriteLine("請輸入天氣情況:(下雨、晴天、陰天)");
            string weather = Console.ReadLine();
            if (!(weather == "下雨"))//邏輯非運算子,當條件為真時,結果為假
            {
                Console.WriteLine("集合");
            }
            else
            {
                Console.WriteLine("不集合");
            }
            Console.ReadLine();
        }

 

2、多重if語句

大家在使用選擇結構時,還會遇到不止判斷一次的情況,這裡有個例子:對學員的結業考試成績進行評測,如果成績大於等於90分,輸出“優秀” 如果成績大於等於80分,輸出“良好” 如果成績大於等於60分,輸出“及格” ,如果成績小於60分,輸出“不及格”。分析這個示例,示例中先要判斷成績大於等於90的情況,沒有90再判斷成績大於等於80的情況,沒有80再判斷成績大於等於60的情況,最後是沒有60的情況。程式至少要判斷三次。多重選擇結構可以處理這種多重判斷的情況。

多重if語句的語法結構:

注意:示例中進行了兩次判斷,實際上多重選擇結構可以進行任意多次判斷,也就是說中間可以加任意多的else if子句

        static void Main(string[] args)
        {
            /*
             *如果成績大於等於90分,輸出“優秀”
             *如果成績大於等於80分,輸出“良好”
             *如果成績大於等於60分,輸出“及格”
             *如果成績小於60分,輸出“不及格”
          */
            Console.Write("請輸入考試成績:");//輸出提示資訊後不換行
            double score = double.Parse(Console.ReadLine());//將使用者輸入的成績轉換為double型別後,賦值給變數score
            if (score >= 90)
            {
                Console.WriteLine("優秀");
            }
            else if (score >= 80)
            {
                Console.WriteLine("良好");
            }
            else if (score >= 60)
            {
                Console.WriteLine("及格");
            }
            else
            {
                Console.WriteLine("不及格");
            }
            Console.ReadLine();//等待使用者輸入
        }

多重選擇結構對於初學者來說,是非常容易出錯的知識點,這裡提醒一下大家:

  • 多重選擇結構中每個條件判斷成立後,程式會執行條件後面的程式碼然後結束,不會再進行後面的判斷,只有不成立的情況下,才會判斷後面的條件。
  • 條件的設定的順序是:把難滿足的條件放前面,容易滿足的條件放後面,否則可能出錯:如果把條件成績大於等於60放前面,大於等於80放後面,那麼90分的成績,在判斷時先滿足前面的條件,後面的條件不會進行判斷了,90分就是中等了。

應用:多重if特別適合某個變數處於某個連續區間時的情況(如學習成績判斷、商場消費贈禮)

程式碼練習:

用程式描述如下問題:某商場促銷,如果客戶消費滿300元,打7折,消費200元以上,打8折,消費100元以上,打9折,其餘按原價計算。

 

3、巢狀if語句

學校舉行運動會,百米賽跑成績在 12 秒以內的學生有資格進決賽,根據性別分為男子組和女子組,大於12秒就淘汰。分析下示例,大家會發現:首先,要判斷是否能夠進入決賽,在確定進入決賽的情況下,再判斷是進入男子組,還是進入女子組。這種一個條件成立的情況下,再進行另一個條件判斷的結構,就需要用巢狀選擇結構完成

巢狀if語句

        static void Main(string[] args)
        {
            /*
             * 學校短跑比賽,如果比賽成績小於等於12秒,進入決賽。
             * 如果是男生,進入男子組決賽,如果是女生,進入女子組決賽。
             * 如果比賽成績大於12秒,則淘汰!
             */
            Console.WriteLine("請輸入比賽成績:");
            int result = int.Parse(Console.ReadLine());
            if (result <= 12)
            {
                Console.WriteLine("請輸入選手性別:");
                string gender = Console.ReadLine();
                if (gender == "男")
                {
                    Console.WriteLine("進入男子組決賽");
                }
                else
                {
                    Console.WriteLine("進入女子組決賽");
                }
            }
            else
            {
                Console.WriteLine("淘汰");
            }
            Console.ReadLine();//等待使用者輸入
        }

程式碼練習:

用程式描述如下問題:某商場促銷,如果客戶消費滿1000元,打8折,同時如果是普通會員送100元代金券,如果是VIP會員送200元代金券;不滿1000元,無論是否會員均按全價計算。