コンテンツへスキップ

【C# の基本】レッスン3:② 関係演算子


概要

このページでは、関係演算子について学習します。関係演算子は、左辺と右辺を比較する際に使います。

演算子演算子名内容
==等値左辺と右辺が等しい場合 ⇒ true
等しくない場合 ⇒ false
1 == 1(true)
1 == 2(false)
!=非等値左辺と右辺が等しくない場合 ⇒ true
等しい場合 ⇒ false
1 != 1(false)
1 != 2(true)
>大なり左辺が右辺よりも大きい場合 ⇒ true
それ以外の場合 ⇒ false
3 > 1(true)
1 > 3(false)
<小なり左辺が右辺よりも小さい場合 ⇒ true
それ以外の場合 ⇒ false
3 < 1(false)
1 < 3(true)
>=大なりイコール左辺が右辺以上の場合 ⇒ true
それ以外の場合 ⇒ false
3 >= 1(true)
1 >= 3(false)
3 >= 3(true)
<=小なりイコール左辺が右辺以下の場合 ⇒ true
それ以外の場合 ⇒ false
3 <= 1(false)
1 <= 3(true)
3 <= 3(true)

プログラムの中で、「大なり」と「小なり」が混在するとプログラムが読みにくくなります。私は「小なり」で統一するようにしています(理由は、数値は右にいくほど大きくなる、というのが一般的だからです)。

STEP1:C# プログラム(ファイル)を追加する

こちらの記事を参考にして、コンソールアプリ(プロジェクト名:Lesson3)に C# プログラム(ファイル名:Lesson3_2)を追加します。

STEP2:プログラムを記述する

Lesson3_2.cs のプログラムを下記のように変更します。

namespace Lesson3
{
    public static class Lesson3_2
    {
        /// <summary>
        /// (1). 等値演算
        /// </summary>
        public static void Text1()
        {
            Console.WriteLine("(1). 等値演算");
            Console.WriteLine("1 == 1:{0}", 1 == 1);
            Console.WriteLine("1 == 2:{0}", 1 == 2);
            Console.WriteLine("");
        }

        /// <summary>
        /// (2). 小なり演算
        /// </summary>
        public static void Text2()
        {
            Console.WriteLine("(2). 小なり演算");
            Console.WriteLine("3 < 1:{0}", 3 < 1);
            Console.WriteLine("1 < 3:{0}", 1 < 3);
            Console.WriteLine("");
        }

        /// <summary>
        /// (3). 小なりイコール演算
        /// </summary>
        public static void Text3()
        {
            Console.WriteLine("(3). 小なりイコール演算");
            Console.WriteLine("3 <= 1:{0}", 3 <= 1);
            Console.WriteLine("1 <= 3:{0}", 1 <= 3);
            Console.WriteLine("3 <= 3:{0}", 3 <= 3);
            Console.WriteLine("");
        }
    }
}

Program.cs のファイルの中身を下記に置き換えます。

namespace Lesson3
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //Lesson3_1.Text1();
            //Lesson3_1.Text2();

            Lesson3_2.Text1();
            Lesson3_2.Text2();
            Lesson3_2.Text3();
        }
    }
}

STEP3:動作を確認する

演算の結果は、想定した結果と同じでしたか?うまくできた人は、課題に取り組んでみてください。

課題 (1):非等値演算

「概要」にある「非等値演算」の例(このページの上部の表内)の結果を確かめてみましょう。Lesson3_2.cs ファイルに以下のプログラムを追記します。

/// <summary>
/// 課題 (1):非等値演算
/// </summary>
public static void Kadai1()
{
    Console.WriteLine("課題(1). 非等値演算");
    Console.WriteLine("1 != 1:{0}", 1 != 1);
    Console.WriteLine("1 != 2:{0}", 1 != 2);
    Console.WriteLine("");
}

課題 (2):大なり演算

「概要」にある「大なり演算」の例(このページの上部の表内)の結果を確かめてみましょう。

課題 (3):大なりイコール演算

「概要」にある「大なりイコール演算」の例(このページの上部の表内)の結果を確かめてみましょう。

課題 (4):異なる型で等値演算

以下のプログラムを追記して結果を確かめてみましょう。

/// <summary>
/// 課題 (4):異なる型で等値演算
/// </summary>
public static void Kadai4()
{
    int a = 1;
    double b = 1.0;
    decimal c = 1.0M;
    double d1 = 0.1;
    double d2 = 0.1;
    decimal e = 0.1M;
    Console.WriteLine("課題 (4):異なる型で等値演算");
    Console.WriteLine("(int)1 == (double)1.0:{0}", a == b);
    Console.WriteLine("(int)1 == (decimal)1.0:{0}", a == c);
    //Console.WriteLine("(double)0.1 == (decimal)0.1:{0}", d1 == e);  // 演算子 '==' を 'double' と 'decimal' 型のオペランドに適用することはできません
    Console.WriteLine("(double)0.1 == (double)0.1:{0}", d1 == d2);
    Console.WriteLine("");
}

次に進む

バグの多くは、関係演算子の記述ミスによるものが多いです。「より大きい」なのか「以上」なのかなど、条件をひとつずつ確認しながらプログラミングをしましょう。次は単項演算子について学びます。