1 2 3 4 5 6 7 8 9 10 11 12 13 14 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace If_and_Else { class Program { static void Main(string[] args) { } } } |
我們先宣告一個整數變數【index】和一個字串變數【result】,並給他們初始值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace If_and_Else { class Program { static void Main(string[] args) { int index = 0; string result = ""; } } } |
接著要開始寫下第一個判斷式了,讓我們來看看要怎麼做。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace If_and_Else { class Program { static void Main(string[] args) { int index = 0; string result = ""; if (index == 0) { result = "這是0"; } else { result = "這不是0"; } Console.Write(result + "\r\n"); Console.ReadKey(); } } } |
上我說明一下邏輯判斷的用法,【if...else】就是用來作邏輯判斷,【if】後面接的是【要判斷的敘述】,通常會稱之為【條件式】,如果【條件式】【成立】,那麼就會執行if下面大括弧裡面的程式碼內容,如果【條件式】【不成立】,那麼就會執行else下面大括弧裡面的程式碼內容。
有看沒有懂?以上面程式碼為例,【index == 0】就是【條件式】,意思是要判斷整數變數【index】的內容是不是整數【0】,如果【是】整數【0】,則字串變數【result】的內容為【這是0】,如果【不是】整數【0】,則字串變數【result】的內容為【這不是0】,你可以試著改變整數【index】的值,並且【重新編譯】程式碼,並執行【開始偵錯】,看看結果有什麼變化。
接著要討論的是很多情況不是只有二分法,怎麼辦?因為其實【if..else】用法是允許【if】敘述單獨出現,【else】不一定要有,所以你可以用很多單獨的【if】來判斷,來看下面的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace If_and_Else { class Program { static void Main(string[] args) { int index = 1; string result = ""; if (index == 1) { result = "星期一"; } if (index == 2) { result = "星期二"; } if (index == 3) { result = "星期三"; } if (index == 4) { result = "星期四"; } if (index == 5) { result = "星期五"; } if (index == 6) { result = "星期六"; } if (index == 7) { result = "星期日"; } Console.Write(result + "\r\n"); Console.ReadKey(); } } } |
除此之外,還可以使用【if..else if..else】的語法來處理,【if..else if..else】怎麼用?
檢查【if】的【條件式】是否成立,
如果【if】的【條件式】【成立】,那麼就執行【if】大括弧裡面的程式碼,
如果【if】的【條件式】【不成立】,那就繼續檢查【else if】的【條件式】,
如果【else if】的【條件式】【成立】,那麼就執行【else if】大括弧裡面的程式碼,
如果【else if】的【條件式】【不成立】,那就繼續檢查下一個【else if】的【條件式】,
都沒有任何【條件式】【成立】,則執行【else】大括弧裡面的程式碼,
頭昏了嗎,讓我們看下面的例子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace If_and_Else { class Program { static void Main(string[] args) { int index = 1; string result = ""; if (index == 1) { result = "星期一"; } else if (index == 2) { result = "星期二"; } else if (index == 3) { result = "星期三"; } else if (index == 4) { result = "星期四"; } else if (index == 5) { result = "星期五"; } else if (index == 6) { result = "星期六"; } else if (index == 7) { result = "星期日"; } else { result = "一星期的日子裡面沒有這天"; } Console.Write(result + "\r\n"); Console.ReadKey(); } } } |
看了程式碼,是不是比較清楚【if..else if..else】該怎麼使用呢?這時候也許你會問,這寫法跟用很多個單獨的【if】差別在哪裡?
讓我告訴你,差別在於【判斷的次數】,不明白?讓我說清楚一點,以上面的例子來看,用很多個單獨的【if】這種寫法,不管你的整數【index】內容是哪個數字,程式【總是】判斷7次,而使用【if..else if..else】的寫法,程式則是【最多】判斷7次。
讓我舉個例子,假設整數【index】內容是【1】,用很多個單獨的【if】這種寫法,會先判斷是不是1,【判斷式】成立,執行大括弧裡面的程式碼,接著繼續判斷是不是2......一直到判斷是不是7,然後結束。
而使用【if..else if..else】的寫法,開始依然會先判斷是不是1,【判斷式】成立,執行大括弧裡面的程式碼,然後就結束了。
當然,你還有另外一種選擇,那就是【switch..case】,怎麼用?【switch】後面放置【要判斷的變數】,【case】後面放置【判斷的條件】,在講蝦米鬼東西,看程式碼比較清楚。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace If_and_Else { class Program { static void Main(string[] args) { int index = 1; string result = ""; switch (index) { case 1: { result = "星期一"; } break; case 2: { result = "星期二"; } break; case 3: { result = "星期三"; } break; case 4: { result = "星期四"; } break; case 5: { result = "星期五"; } break; case 6: { result = "星期六"; } break; case 7: { result = "星期日"; } break; default: { result = "一星期的日子裡面沒有這天"; } break; } Console.Write(result + "\r\n"); Console.ReadKey(); } } } |
基本上這個寫法與【if..else if..else】的效果相同,什麼情況用哪個?我的經驗是,條件少的用【if..else if..else】,條件多的用【switch..case】,小弟一點拙見,今天就到這,明天見。
沒有留言:
張貼留言