C# - 演算子:プログラミングの魔法の扉

こんにちは、未来のコード魔術師たち!今日は、C#の演算子の素晴らしい世界に飛び込みます。これまで一度もコードを書いたことがない方も心配しないでください。このチュートリアルの終わりまでには、プロのように演算子を弄びます!

C# - Operators

演算子とは?

まず、演算子とは何かを理解しましょう。演算子はプログラミングの魔法の杖のようなものです。データにアクションを行使し、まるでシェフがさまざまな調理器具を使って美味しい料理を作るように、私たちのデータ(材料)を操作して素晴らしいレシピ(プログラム)を創作するのに役立ちます。C#には、データを操作するのに役立つさまざまな種類の演算子があります!

算術演算子:基本の数学の魔術

まずは最もシンプルな演算子から始めましょう。それが算術演算子です。これらは、魔術師が最初に学ぶ基本の呪文のようなものです。

加算 (+)

int apples = 5;
int oranges = 3;
int totalFruit = apples + oranges;
Console.WriteLine($"Total fruit: {totalFruit}");

出力: Total fruit: 8

ここでは、りんごとオレンジを足しています(通常は这么做 shouldn't do ですが、C#では我々は反逆者です!)。+ 演算子は applesoranges の値を足し、結果を totalFruit に格納します。

減算 (-)

int cookies = 10;
int eaten = 3;
int remaining = cookies - eaten;
Console.WriteLine($"Cookies left: {remaining}");

出力: Cookies left: 7

- 演算子は eatencookies から引きます。まるで魔法のようにクッキーが消えます!

掛け算 (*)

int students = 5;
int pencilsPerStudent = 2;
int totalPencils = students * pencilsPerStudent;
Console.WriteLine($"Total pencils needed: {totalPencils}");

出力: Total pencils needed: 10

* 演算子は studentspencilsPerStudent で掛けます。クラスに必要な鉛筆の数を簡単に計算するのに最適です!

除算 (/)

int pizza = 8;
int friends = 3;
int slicesPerFriend = pizza / friends;
Console.WriteLine($"Slices per friend: {slicesPerFriend}");

出力: Slices per friend: 2

/ 演算子は pizzafriends で割ります。ただし、整数同士の除算では小数点以下が切り捨てられます。パイの枚数が2.67にならないのはこのためです!

剰余算 (%)

int pizza = 8;
int friends = 3;
int leftoverSlices = pizza % friends;
Console.WriteLine($"Leftover slices: {leftoverSlices}");

出力: Leftover slices: 2

% 演算子は除算の余りを返します。パイを友人と分けるときにどれだけ残るかを計算するのに最適です!

関係演算子:比較の达人

次に、関係演算子に進みましょう。これらの演算子は、料理番組の判定者のようなものです。比較を行い、はいまたはノーの答えを返します。

等しい (==)

int myAge = 25;
int yourAge = 25;
bool sameAge = (myAge == yourAge);
Console.WriteLine($"Are we the same age? {sameAge}");

出力: Are we the same age? True

== 演算子は二つの値が等しいかどうかをチェックします。まるで「これらの二つが全く同じか?」と尋ねているようなものです。

等しくない (!=)

string myFavoriteColor = "Blue";
string yourFavoriteColor = "Red";
bool differentFavorites = (myFavoriteColor != yourFavoriteColor);
Console.WriteLine($"Do we have different favorite colors? {differentFavorites}");

出力: Do we have different favorite colors? True

!= 演算子は二つの値が等しくないかどうかをチェックします。まるで「これらの二つが異なるか?」と尋ねているようなものです。

大于 (>) と 小于 (<)

int myScore = 85;
int passingScore = 70;
bool passed = (myScore > passingScore);
Console.WriteLine($"Did I pass? {passed}");

出力: Did I pass? True

> 演算子は左側の値が右側の値よりも大きいかどうかをチェックします。同様に、< は左側の値が右側の値よりも小さいかどうかをチェックします。

大于または等しい (>=) と 小于または等しい (<=)

int myHeight = 180;
int doorHeight = 180;
bool canIPass = (myHeight <= doorHeight);
Console.WriteLine($"Can I pass through the door? {canIPass}");

出力: Can I pass through the door? True

これらの演算子は、値が大于または等しい(または小于または等しい)かどうかをチェックします。

論理演算子:決定の達人

論理演算子は、プログラミングの村の賢者のようなものです。異なる条件を組み合わせて複雑な決定を行うのに役立ちます。

AND (&&)

bool hasMoney = true;
bool isHungry = true;
bool willBuyFood = hasMoney && isHungry;
Console.WriteLine($"Will I buy food? {willBuyFood}");

出力: Will I buy food? True

&& 演算子は二つの条件がともに真の場合にのみ真を返します。まるで「私はお金があり、且つお腹が空いている場合にのみ食べ物を買う」と言っているようなものです。

OR (||)

bool isRaining = false;
bool isCold = true;
bool willStayInside = isRaining || isCold;
Console.WriteLine($"Will I stay inside? {willStayInside}");

出力: Will I stay inside? True

|| 演算子は少なくとも一つの条件が真の場合に真を返します。まるで「雨が降っている場合または寒い場合に室内に留まる」と言っているようなものです。

NOT (!)

bool isSunny = true;
bool isNotSunny = !isSunny;
Console.WriteLine($"Is it not sunny? {isNotSunny}");

出力: Is it not sunny? False

! 演算子はブール値を反転します。まるで「晴れている場合、それが「晴れていない」となる」と言っているようなものです!

ビット演算子:二進の仲間

ビット演算子は、数の個々のビットに作用します。これらは、プログラミングの世界の顕微鏡的なシェフのようなものです。データの最も小さなレベルで働きます。

ビットAND (&)

int a = 5;  // 101 in binary
int b = 3;  // 011 in binary
int result = a & b;
Console.WriteLine($"Result of 5 & 3: {result}");

出力: Result of 5 & 3: 1

& 演算子は各ペアのビットに対してAND操作を行います。まるで「この二つのビットがともに1か?」と尋ねているようなものです。

ビットOR (|)

int a = 5;  // 101 in binary
int b = 3;  // 011 in binary
int result = a | b;
Console.WriteLine($"Result of 5 | 3: {result}");

出力: Result of 5 | 3: 7

| 演算子は各ペアのビットに対してOR操作を行います。まるで「少なくとも一つのビットが1か?」と尋ねているようなものです。

代入演算子:値の設定者

代入演算子は、プログラミングの世界の引越し屋のようなものです。値を変数に格納するのに役立ちます。

単純代入 (=)

int x = 10;
Console.WriteLine($"x is now: {x}");

出力: x is now: 10

= 演算子は単純に値を変数に代入します。

繰り返し代入 (+=, -=, *=, /=)

int score = 100;
score += 50;  // Same as: score = score + 50
Console.WriteLine($"New score: {score}");

出力: New score: 150

繰り返し代入演算子は、算術演算と代入を組み合わせます。プログラミングの省略表現です。

その他の演算子:特別なもの

これらの演算子は、シェフのキッチンにあるユニークなツールのようなものです。特定の重要な仕事をするものです。

三項演算子 (?:)

int age = 20;
string status = (age >= 18) ? "Adult" : "Minor";
Console.WriteLine($"Status: {status}");

出力: Status: Adult

三項演算子は、if-else文の短い書き方です。質問をし、二つの可能な答えを提供します。

C#における演算子の優先順位

数学と同様に、C#も複数の演算子を含む式を評価する際に特定の順序に従います。以下は演算子の優先順位の簡略化された表です:

優先順位 演算子カテゴリ 演算子
最も高い 括弧 ()
算術 *, /, %
算術 +, -
関係 <, >, <=, >=
等価 ==, !=
論理AND &&
論理OR ||
最も低い 代入 =, +=, -=

わかりにくい場合は、括弧を使用して意図を明確にしましょう!

そして、あなたたち若いコードの弟子たち!C#の演算子の魔法の世界にようこそ。練習すれば完璧になりますので、これらの演算子を自分のコードで試してみてください。間もなく、真のコード魔術師としてプログラムを書けるようになるでしょう!

ハッピーコーディング、そして演算子があなたとともにいてくれることを祈っています!

Credits: Image by storyset