C# Challenge 04 - 針對 C# 中的數字執行基本作業

C# Challenge 04 - 針對 C# 中的數字執行基本作業

Microsoft 2023 年所提供的 C# codecamp 基礎課程,總共有 38 個單元,完成後就可以獲得 Certification ,今天要來跟大家分享的是第四單元章節的內容。

本節內容

不同型別資料組合

1
2
3
4
string firstName = "Bob";
int widgetsSold = 7;
Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
// output: Bob sold 77 widgets.

編譯器會直接將所有 Console.WriteLine() 的內容視為字串,然後把它們全部串聯在一起。
但如果要將該字元視為數字進行運算時,可以使用 () 來表明這裡的值是要作為 int 來計算而不是 string

1
2
3
4
string firstName = "Bob";
int widgetsSold = 7;
Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
// output: Bob sold 14 widgets.

基本運算子

數學運算子

  • +加法運算子
  • -減法運算子
  • *乘法運算子
  • /除法運算子

小數點運算規則和型別

1
2
3
decimal decimalQuotient = 7.0m / 5;
Console.WriteLine($"Decimal quotient: {decimalQuotient}");
// output: Decimal quotient: 1.4

如果是小數點的資料要使用運算子的話,記得被除數或者是除數其中一個必須要是 decimal 的 type (或是兩者同時都是 decimal 也可以) 。

轉換型別後計算

但如果原本是 int 的資料型別卻想要做 decimal 小數點形式的資料轉換和計算的話,可以使用 (decimal) 來完成。

1
2
3
4
5
int first = 7;
int second = 5;
decimal quotient = (decimal)first / (decimal)second;
Console.WriteLine(quotient);
// output: 1.4

取餘數運算子

就是 % ,功能是計算資料後的餘數,如下面範例所示:

1
2
3
4
Console.WriteLine($"Modulus of 200 / 5 : {200 % 5}");
Console.WriteLine($"Modulus of 7 / 5 : {7 % 5}");
// output: Modulus of 200 / 5 : 0
// output: Modulus of 7 / 5 : 2

運算子優先順序

  1. Parentheses (括弧) : 必須先執行括弧內的內容
  2. Exponents (指數)
  3. Multiplication (乘法) 與 Division (除法) : 由左至右
  4. Addition (加法) 與 Subtraction (減法) : 由左至右

複合指派運算子

  • += 運算子會新增運算子右邊的值,並將其指派給運算子左邊的值。

    int value = 0;     // value is now 0.
    value = value + 5; // value is now 5.
    value += 5;        // value is now 10.      
    
  • ++ 運算子會將變數的值遞增 1。

    int value = 0;     // value is now 0.
    value = value + 1; // value is now 1.
    value++;           // value is now 2.    
    

    先遞增後遞增的範例

    這邊可以特別注意一下先遞增和後遞增的差異,附上 ChatGPT 的說明在下方。

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));  
    
    // output: First: 2
    //         Second: 2
    //         Third: 3
    //         Fourth: 4
    
    1. 先遞增(++value) : 在進行遞增操作之前,首先會將變數的值加 1,然後返回遞增後的值。換句話說,先遞增操作會首先增加變數的值,然後返回新的值。
    2. 後遞增(value++) : 在進行遞增操作之前,首先會返回變數的當前值,然後再將變數的值加 1。換句話說,後遞增操作會首先返回當前的值,然後再增加變數的值。

    這兩種遞增操作的主要差異就是返回值的順序。如果需要先使用變數的當前值,然後再遞增,則應使用後遞增 (value++)。如果要先遞增變數的值,然後再使用新的值,則應使用先遞增 (++value)。在先遞增的情況下,變數的值會在遞增前被修改,而在後遞增的情況下,變數的值會在遞增後被修改。

    簡而言之就是根據遞增和遞減運算子是位於運算元之前或之後,執行方式會有所不同。


重點整理

今天主要都在介紹運算子,然後新的知識點是先遞增和後遞增的差異:後遞增是先返回值再做後續的計算;先遞增是先進行運算操作後再返回值。
除了學 C# 的東西也同時複習一下 JavaScript 的型別挺好的哈哈!
那我們下次見ʘ‿ʘ


參考資料

評論