iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

初心者學C#系列 第 12

Day 12:C#裡做決策 (┛◉Д◉)┛

  • 分享至 

  • xImage
  •  

※以下內容皆是新手撰寫,內容可能不完全正確

(默默為還沒掛掉的自己拍拍手)
若想令程式做出 做決策的動作(decision-making) ,必須提供一個或多個條件讓系統做判斷/測試。我個人覺得這個部分要弄好的話,需要有一定的邏輯能力與對true和false概念的理解。用大部分程式語言寫這種部分的時候有一種特定結構,有些人稱做 決策樹(decision tree)。我看了一些決策樹之後試著自己畫一棵~分支視情況可以一直分下去,分好分滿(畫得不太好,圖醜不要打我喔QQ):
https://ithelp.ithome.com.tw/upload/images/20190927/20120882ACwmh7CGh8.png

C#提供的決策敘述(decision-making statements)
用以下自己寫的例子講 if、else if和else ;這個程式從變數bmi判斷體重是過輕、健康範圍還是過重。Bmi小於18會顯示「你體重過輕!」,大於24會顯示「你體重過重!」,而bmi在18到24之間是健康體重,會輸出「你體重在健康範圍內!」。只有兩個條件的話,一般用if跟else就好了(寫出一個條件,else用來處理那個條件以外的部分);else if用於多於兩種情況/條件的狀況:

using System;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int bmi = 27;
            if (bmi < 18)
            {
                Console.WriteLine("You are underweight!");
            }
            else if (bmi > 24)
            {
                Console.WriteLine("You are overweight!");
            }
            else
                {
                Console.WriteLine("You are at a healthy weight!");
            }
            

        }
    }
}

switch敘述(switch statement)
switch簡單來說就是拿一個變數經過一堆不同條件/情況的方法,如此一來便能省略一大堆的else if。使用switch的格式如下,case可以增加下去,且每個case要以break;收尾;省了很多大括號,比用else if便利:

{ int variable = 5
            switch (variable)
            {
                case 'case 1':
                    Console.WriteLine("Scenario 1");
                    break;
                case 'case 2':
                    Console.WriteLine("Scenario 2");
                    break;
                case 'case 3':
                    Console.WriteLine(Scenario 3);
                    break;
                default:
                    Console.WriteLine("abcdefg");
                    break;
            }
        }

?:運算子(?:Operator)
?:運算子可以當作if – else的簡化版,格式為以下:

string a = (表式/條件x)? 條件x屬實呈現的:條件x不屬實呈現的;

    Console.WriteLine(a);

如此一來,輸出的就是經過判斷ㄉa了 ~
這篇比前一篇好寫一點點,下一篇會講迴圈 v(^_^)v 是一個越來越難懂的節奏啊…

參考資料:
(a) Microsoft; ?: Operator
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator
(b) Tutorialspoint; C# - Decision Making
https://www.tutorialspoint.com/csharp/csharp_decision_making.htm


上一篇
Day 11:C#的運算子 (ಠ∀ಠ) 想把東西解釋好真難
下一篇
Day 13: C#的迴圈 ʅ(ツ)ʃ
系列文
初心者學C#30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言