C#における変数のインクリメント・デクリメントを解説

C#で使われるインクリメント・デクリメントについて解説します。

インクリメント

前回のfor文で「1づつ繰り上がる」を「インクリメント」と言います。インクリメントとは単純に「増加」を表す英単語になりますが、プログラミングですと少しだけ意味が違います。

int i = 0;
i = i + 1;

上記のようなC#のプログラムでは2行目を経た後の変数「i」の値は1になります。2行目は「変数・iに1を足した値を、iに代入する」という意味です。つまり「自分に1足した値を自分にする」ということになります。

こうしたコードを「インクリメント」とプログラミングの世界では呼んでいるのです。これをC#で短縮的に表現すると以下のようになります。

int i = 0;
i++;

かなり簡単になりましたね。「変数名++;」の表現で指定した変数に1足した値を変数自身に代入する処理をしてくれます。ですので2行目の値は、先ほどのサンプルと同様に1になります。では、前回のfor文のサンプルを「インクリメント」を使って書いてみましょう。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace App24
{
    class Program
    {
        static void Main(string[] args)
        {
            for(int i = 1; i <= 10; i++)
            {
                Console.WriteLine(i.ToString());
            }
            Console.ReadLine();
        }
    }
}

増加条件にインクリメントを使用することが可能です。「int i = i  + 1」でも意味的には同じですが、「i++」にするとプログラマーっぽくなりますね。では次は「繰り下がり」を紹介します。

デクリメント

前回のサンプルでは「int i = i – 1」としていましたが、繰り下がるパターンもあります。これを「デクリメント」と呼んでいます。「デクリメント」は単純に「減少」を表す英単語になりますが、プログラミングでは「1づつ繰り下がる」場合に使用します。

インクリメントは「i++;」でしたので、デクリメントも予想がつくかもしれません。

int i = 10;
i--;

これがデクリメントの記述方法になります。2行目のiの値は10から1引いた値の9になります。プログラマーは楽したい生き物なのです。では前回のfor文のサンプルもデクリメントを使用して書いてみましょう。以下のようになります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace App25
{
    class Program
    {
        static void Main(string[] args)
        {
            for(int i = 10; i > 0; i--)
            {
                Console.WriteLine(i.ToString());
            }
            Console.ReadLine();
        }
    }
}

こちらの「i–」も「int i = i – 1」と同様の表現になりますが、こちらのほうが記述量が少ないので、プログラムを書く時が楽になります。

シンプルな表現はたくさん使おう

インクリメントとデクリメントについて紹介しました。必須の知識ではありませんが、知っておくとソースの記述量を少しでも抑えることができるので、知っておくと便利な表現になります。

インクリメントとデクリメントは数多くの場面で使用することが多いので、日常的によく使う記述法になりので覚えておくとよいでしょう。今後、この連載にてfor文を記述するときは、インクリメント・デクリメントを積極的に使用していきます。

また、あなたも自習などで書いてきたfor文をインクリメント・デクリメントで書き直すなど練習して、とっさに使いこなせるようになってください。