C# - 運算子:編程魔法的入門

你好,未來的編碼巫師們!今天,我們要深入C#運算子的奇妙世界。別擔心如果你之前從未寫過一行代碼——到了這個教學的結尾,你將會像專家一樣玩轉運算子!

C# - Operators

運算子是什麼?

在我們開始之前,讓我們先了解運算子是什麼。可以把運算子當成編程中的魔法棒。它們允許我們對數據進行操作,就像廚師用不同的器具來製作美味的菜餚一樣。在C#中,我們有各種類型的運算子,幫助我們操縱我們的原料(數據)來創造出神奇的配方(程序)!

算術運算子:基本的數學魔法

讓我們從最簡單的運算子開始——算術運算子。這些就像每個巫師最初學習的基本咒語。

加法 (+)

int apples = 5;
int oranges = 3;
int totalFruit = apples + oranges;
Console.WriteLine($"總共的水果: {totalFruit}");

輸出:總共的水果: 8

在這裡,我們將蘋果和橙子相加(他們說你不應該這樣做,但在C#中,我們是反叛者!)。+運算子將applesoranges的值相加,將結果存儲在totalFruit中。

減法 (-)

int cookies = 10;
int eaten = 3;
int remaining = cookies - eaten;
Console.WriteLine($"剩下的cookies: {remaining}");

輸出:剩下的cookies: 7

-運算子從cookies中減去eaten。這就像魔法——cookies消失了!

乘法 (*)

int students = 5;
int pencilsPerStudent = 2;
int totalPencils = students * pencilsPerStudent;
Console.WriteLine($"需要的鉛筆總數: {totalPencils}");

輸出:需要的鉛筆總數: 10

*運算子將students乘以pencilsPerStudent。這對於快速計算購買多少鉛筆給你的課堂非常適合!

除法 (/)

int pizza = 8;
int friends = 3;
int slicesPerFriend = pizza / friends;
Console.WriteLine($"每個朋友的片數: {slicesPerFriend}");

輸出:每個朋友的片數: 2

/運算子將pizza除以friends。注意,我們得到的是2,而不是2.67。那是因為當除以整數時,C#會舍去小數部分。就像計算機在對pizza片吝嗇一樣!

餘數 (%)

int pizza = 8;
int friends = 3;
int leftoverSlices = pizza % friends;
Console.WriteLine($"剩下的片數: {leftoverSlices}");

輸出:剩下的片數: 2

%運算子給我們除法的餘數。這對於計算你和朋友分享pizza後你能吃到多少片非常適合!

間接運算子:比較專家

現在,讓我們來看看間接運算子。這些運算子就像烹飪節目中的評委——它們比較事物並給我們一個是或不是的答案。

等於 (==)

int myAge = 25;
int yourAge = 25;
bool sameAge = (myAge == yourAge);
Console.WriteLine($"我們年齡相同嗎? {sameAge}");

輸出:我們年齡相同嗎? True

==運算子檢查兩個值是否相等。就像在問,“這兩樣東西完全一樣嗎?”

不等於 (!=)

string myFavoriteColor = "Blue";
string yourFavoriteColor = "Red";
bool differentFavorites = (myFavoriteColor != yourFavoriteColor);
Console.WriteLine($"我們有不同的最喜歡顏色嗎? {differentFavorites}");

輸出:我們有不同的最喜歡顏色嗎? True

!=運算子檢查兩個值是否不相等。就像在問,“這兩樣東西不同嗎?”

大於 (>) 和 小於 (<)

int myScore = 85;
int passingScore = 70;
bool passed = (myScore > passingScore);
Console.WriteLine($"我通過了嗎? {passed}");

輸出:我通過了嗎? True

>運算子檢查左邊的值是否大於右邊的值。同樣,<檢查左邊的值是否小於右邊的值。

大於或等於 (>=) 和 小於或等於 (<=)

int myHeight = 180;
int doorHeight = 180;
bool canIPass = (myHeight <= doorHeight);
Console.WriteLine($"我能通過這扇門嗎? {canIPass}");

輸出:我能通過這扇門嗎? True

這些運算子檢查一個值是否大於或等於(或小於或等於)另一個值。

邏輯運算子:決策者

邏輯運算子就像我們編程村莊中的智者和長者。它們幫助我們通過結合不同的條件來做出複雜的決策。

AND (&&)

bool hasMoney = true;
bool isHungry = true;
bool willBuyFood = hasMoney && isHungry;
Console.WriteLine($"我會買食物嗎? {willBuyFood}");

輸出:我會買食物嗎? True

&&運算子只有當兩個條件都為真時才返回真。就像在說,“我只有在有錢並且飢餓時才會買食物。”

OR (||)

bool isRaining = false;
bool isCold = true;
bool willStayInside = isRaining || isCold;
Console.WriteLine($"我會待在室內嗎? {willStayInside}");

輸出:我會待在室內嗎? True

||運算子只要至少一個條件為真就返回真。就像在說,“我會待在室內,如果下雨或天氣寒冷。”

NOT (!)

bool isSunny = true;
bool isNotSunny = !isSunny;
Console.WriteLine($"天氣不晴朗嗎? {isNotSunny}");

輸出:天氣不晴朗嗎? False

!運算子顛倒布爾值。就像在說,“如果天氣晴朗,那麼它不是不晴朗。”

位運算子:二進制的夥伴

位運算子對數字的個別位進行操作。它們就像編程世界中的顯微廚師,在我們數據的最微小層面上工作。

位運算 AND (&)

int a = 5;  // 二進制為 101
int b = 3;  // 二進制為 011
int result = a & b;
Console.WriteLine($"5 & 3 的結果: {result}");

輸出:5 & 3 的結果: 1

&運算子在每對位上執行AND操作。就像在問,“這兩個位都是1嗎?”

位運算 OR (|)

int a = 5;  // 二進制為 101
int b = 3;  // 二進制為 011
int result = a | b;
Console.WriteLine($"5 | 3 的結果: {result}");

輸出:5 | 3 的結果: 7

|運算子在每對位上執行OR操作。就像在問,“至少有一個位是1嗎?”

賦值運算子:數值的設定者

賦值運算子就像編程世界中的搬運工。它們幫助我們將值放入變量中。

簡單賦值 (=)

int x = 10;
Console.WriteLine($"x 現在是: {x}");

輸出:x 現在是: 10

=運算子簡單地將一個值賦給一個變量。

縮合賦值 (+=, -=, *=, /=)

int score = 100;
score += 50;  // 相當於: score = score + 50
Console.WriteLine($"新的分數: {score}");

輸出:新的分數: 150

縮合賦值運算子將算術操作與賦值結合起來。它們在編程中是縮寫。

雜項運算子:特殊的工具

這些運算子就像廚師厨房中的特殊工具——它們有特定而重要的工作。

三元運算子 (?:)

int age = 20;
string status = (age >= 18) ? "成人" : "未成年人";
Console.WriteLine($"狀態: {status}");

輸出:狀態: 成人

三元運算子是if-else語句的簡寫形式。就像在問一個問題並提供兩個可能的答案。

C#中的運算符優先級

就像在數學中一樣,C#在評估帶有多個運算符的表達式時遵循特定的順序。以下是一個簡化的運算符優先級表:

優先級 運算符類別 運算符
最高 括號 ()
算術 *, /, %
算術 +, -
間接 <, >, <=, >=
相等 ==, !=
邏輯 AND &&
邏輯 OR ||
最低 賦值 =, +=, -=

記住,當你猶豫時,使用括號來清楚表達你的意圖!

好了,我的年輕編碼學徒們!你剛剛被介紹到了C#運算子的神奇世界。記住,熟能生巧,所以不要害怕在你的代碼中試驗這些運算子。在你還沒有察覺之前,你將會像一個真正的編碼巫師一樣編寫程序!

快樂編程,願運算符與你同在!

Credits: Image by storyset