この記事では C#でよく使う「演算子」を紹介していきます。演算子を知ることは C# を記述していく上でも絶対に必要であり、使い方をマスターすることは重要になります。サンプル付きで解説するので安心してください。
C#における「演算子」とは何か
演算子とは何でしょうか。これまでの内容で少しだけ演算子に触れましたが、その時はシンプルに数値の計算だけを行いたいときに使用する名目で紹介しました。
C#における演算子はたくさんありますが、この記事では「比較」を行うときの演算子、またANDとORで条件を組み上げるときの演算子を紹介していきます。
演算子を一言で紹介すると「いろいろな変数に対して何らかの処理を加えること」になります。これまで出てきた数値計算でも「a と b を足す」や「a 割る b の余り」といった処理を行うようにしていましたね。とにかく演算子は「処理をするもの」だと覚えておけば大丈夫です。
演算子をサンプル付きで解説
ここではC#で使う基礎として以下の2つの演算子を取り扱います。
- 関係演算子
- 論理演算子
これら2つの演算子はC#でプログラミングを行っていく中で最も使われる、「絶対に覚えるべき演算子」になりますので、必ずマスターする必要のある演算子になります。それを詳しく解説していきます。
関係演算子
関係演算子とは、読んで字のごとく「何かと何かの関係性を扱う」演算子になります。プログラミング的に言うと「ある値はとある値にくらべてどうなのか?」を演算してくれるもの、という感じになります。「大きい」「小さい」「以上」「以下」「等しい」「等しくない」が該当します。
前に出てきた「==」という演算子は「左辺と右辺が等しいかどうか」をチェックしてくれる演算子でした。等しければTrueとなり、等しくなければFalseになる演算子です。ほかにもいろいろとありますので以下に一覧にしてみました。
演算子 | 意味 |
---|---|
x == y | x が y と等しいか |
x != y | x が y と異なるか |
x < y | x が y よりも小さいか |
x > y | x が y よりも大きいか |
x <= y | x が y 以下であるか |
x >= y | x が y 以上であるか |
上記の演算子を一気にチェックできるサンプルを作成してみたので、新しくコンソールアプリケーションのプロジェクトを作成して挑戦してみてください。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace App18
{
class Program
{
static void Main(string[] args)
{
int numA = 10;
int numB = 15;
Console.WriteLine("関係演算子のサンプルです。");
Console.Write("numA = ");
Console.WriteLine(numA.ToString());
Console.Write("numB = ");
Console.WriteLine(numB.ToString());
Console.WriteLine();
Console.WriteLine("== のサンプル");
if(numA == numB)
{
Console.WriteLine("numAとnumBは同じ値です。");
}
else
{
Console.WriteLine("numAとnumBは違う値です。");
}
Console.WriteLine();
Console.WriteLine("!= のサンプル");
if (numA != numB)
{
Console.WriteLine("numAとnumBは違う値です。");
}
else
{
Console.WriteLine("numAとnumBは同じ値です。");
}
Console.WriteLine();
Console.WriteLine("< のサンプル");
if (numA < numB)
{
Console.WriteLine("numAはnumBよりも小さい値です。");
}
else
{
Console.WriteLine("numAはnumB以上の値です。");
}
Console.WriteLine();
Console.WriteLine("> のサンプル");
if (numA > numB)
{
Console.WriteLine("numAはnumBよりも大きい値です。");
}
else
{
Console.WriteLine("numAはnumB以下の値です。");
}
Console.WriteLine();
Console.WriteLine("<= のサンプル");
if (numA <= numB)
{
Console.WriteLine("numAはnumB以下の値です。");
}
else
{
Console.WriteLine("numAはnumBより大きい値です。");
}
Console.WriteLine();
Console.WriteLine(">= のサンプル");
if (numA >= numB)
{
Console.WriteLine("numAはnumB以上の値です。");
}
else
{
Console.WriteLine("numAはnumBより小さい値です。");
}
Console.WriteLine();
Console.ReadLine();
}
}
}
かなり長い感じのサンプルになっていますが、理解しながら一つ一つを記述してみてください。またnumAとnumBを直接記述する方式にしているので、値を変えながら試してみるのも良いかもしれません。是非とも遊んでみてください。
論理演算子
関係演算子に続いて紹介しておきたいのが「論理演算子」と呼ばれるものになります。論理演算子とは「AND」「OR」を条件として扱うときの演算子となります。日本語でいうと「かつ」「または」ですね。高校数学では「集合」という単位として扱われる分野になります。
演算子 | 意味 |
---|---|
Ex1 && Ex2 | 式1 かつ 式2 がともにTrueであるとき |
Ex1 || Ex2 | 式1 がTrueまたは、式2がTrueであるとき |
基本的に上記の二つを覚えておけば十分です。「&&」は「AND」を判定し、「||」は「OR」を判定する演算子で、「&&」「||」を間に挟んだ2つを判定してTrueかFalseとなる演算子になります。例えば以下のような例が挙げられます。
- 入力値が1以上、かつ(AND)入力値が10以下
- 入力値がapple、または(OR)入力値がbanana
のような感じです。これをプログラミングで表すと以下のようなサンプルになります。それぞれ入力値判定などは無視した、最小限のサンプルにしています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace App19
{
class Program
{
static void Main(string[] args)
{
int inputA = Convert.ToInt32(Console.ReadLine());
if(1 <= inputA && inputA <= 10)
{
Console.WriteLine("入力値は1以上、10以下の数です。");
}
Console.ReadLine();
}
}
}
上記は「&&」のサンプルになります。入力値が1以上、かつ10以下の場合にメッセージを表示するようにしています。「&&」の場合は「入力値が1以上」「入力値が10以下」の2つを満たさない限り、Trueにはなりません。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace App20
{
class Program
{
static void Main(string[] args)
{
string inputB = Console.ReadLine();
if (inputB == "apple" || inputB == "banana")
{
Console.WriteLine("入力値はapple、もしくはbananaでした。");
}
Console.ReadLine();
}
}
}
上記のサンプルは「||」のサンプルになります。演算子を挟んだ両側の式のうち、どちらかを満たしていればTrueになる演算子になります。つまり、入力された文字がapple、もしくはbananaである場合にTrueとなりメッセージが表示されます。それ以外の文字の場合は何も表示されません。
上記のように演算子にはたくさん種類があります。単なる数値を計算するときの演算子、値を比較するための演算子、そして複数の式の集合を計算する演算子など多岐に渡ります。演算子は忘れずにマスターしておかなければC#を使いこなすことは難しいので、しっかりとマスターできるように何度も復習しておきましょう。