Youtube登録者5000人突破!!

【C++】代入演算子・インクリメント 【はじめてのC++プログラミング入門講座 #4】

はじめてのC++プログラミング入門講座では、プログラミングをやったことのない人でも分かるように、C++について解説します。まずは、C++を知るところからはじめて、初心者がつまづきやすい「ポインタ」までをゴールとして進めていきます。全て無料で学べる内容となってますので、ぜひ最後までお付き合いください。

丁寧に学ぶをモットーに、ひとつずつじっくりと理解しけるように解説します。 はじめは少し退屈かもしれませんが、基礎を身に着けておくと、後が楽になります。また、プログラミング学習でよくあるのが、飛ばしすぎて途中で挫折してしまうことです。続けさえすれば力になります。じっくりゆっくり学んでいきましょう。

本講座はC++の開発環境が必要です。環境構築には第1回のVisual Studioの環境構築を参考にしてください。下記からどうぞ。

前回の第3回では、変数・型・演算子について解説しました。詳細は下記からどうぞ。

重要なポイントは下記の通りです。型を使った変数宣言はどの言語でもほぼ共通です。整数と浮動小数点は今後もよく使うので理解しておきましょう。

  • 変数は数学のxやyのように好きなものを入れられる
  • 変数は整数・小数・文字列などが入れられる
  • 変数は使用用途に応じた型で宣言する必要がある
  • 小数はプログラミングでは、表示方法に基づいた名前として浮動小数点と呼ぶ
  • 演算もできる
  • かける(×)は「*」、割る(÷)は「/」で表す

代入演算子・インクリメント

特殊な演算子として、代入演算子とインクリメントがあります。この2つは、普通の演算子でできることを省略形で書く機能です。省略形というと、必須スキルではないような気もしますが、なぜ必要なのでしょうか?

プログラムは長くなると、どんどん複雑になります。「いかに見やすいプログラムを書くか」はプログラマーの一生の課題と言っても過言ではありません。それほどまでに、見やすいプログラムというのは価値があります。

省略形はすっきりとした見た目で、ひと目でプログラムを見やすくしてくれます。特に、一つずつ数字を増やす機能である「インクリメント」は多用されるので、しっかり頭に入れておきましょう。

今回使用するコードは下記のようになります。短めですね。VisualStudioに貼り付けて、Ctrl+F5で実行してみてください。

#include <iostream>

int main()
{
	int x = 3;

	x += 3;
	x -= 3;
	x *= 3;
	x /= 3;

	std::cout << x << "\n";
	std::cout << ++x << "\n";
	std::cout << ++x << "\n";
	std::cout << x << "\n";
	std::cout << x++ << "\n";
	std::cout << x++ << "\n";
}

出力結果は下記のようになります。

3
4
5
5
5
6

それでは今回のコードを上から順に読み解いていきましょう。

ライブラリとメイン関数

#include <iostream>

int main()
{
・・・
}

まずはライブラリのインクルードを行います。今回は入出力ライブラリであるiostreamをインクルードします。今回はiostream以外にインクルードするものはないので、他の部分は全てメイン関数内に書いていきます。

代入演算子

	int x = 3;

	x += 3;
	x -= 3;
	x *= 3;
	x /= 3;

int x = 3;の行では、整数型のint型を使って変数xに3を代入しています。その次の行から使っている+=,-=,*=,/=が今回説明する代入演算子です。

代入演算子は演算を省略して書く方法です。例えばx += 3;ではxに3を足した結果をxに代入します。普通に書くとx=x+3;です。代入演算は頻繁に使用されるので、短く省略した記述があります。また短く記述できるので、コードが見やすくなるという特徴もあります。必須知識とまではいきませんが、よく使われるので覚えておくと良いです。

x += 3;の行でxに3が足されるので、xは6になります。
x -= 3;の行でxから3が引かれるので、xは3になります。
x *= 3;の行でxに3が掛けられるので、xは9になります。
x /= 3;の行でxを3で割るので、xは3になります。

インクリメント・デクリメント

	std::cout << x << "\n";
	std::cout << ++x << "\n";
	std::cout << ++x << "\n";
	std::cout << x << "\n";
	std::cout << x++ << "\n";
	std::cout << x++ << "\n";

次はインクリメント・デクリメントについて解説します。インクリメントは1を足す演算で、プラス(+)を2つつなげて表します。これも普通に書くとx=x+1ですが、頻繁に使用するので省略形のインクリメントがよく使われます。デクリメントは1を引く演算で、マイナス(ー)を3つつなげて表します。普通に書くとx=x-1ですが、コードの読みやすさの観点からもデクリメントで表記するのが一般的です。

std::cout << x << “\n”; この行でまず現在の値を確認します。この時点ではxは3が入っています。
std::cout << ++x << “\n”; この行でインクリメントを行います。++が変数xの前にあるので、xに1が足された値が画面に出力されます。よって4が出力されます。
std::cout << ++x << “\n”; ひとつ上の行と同様ですね。5が出力されます。
std::cout << x << “\n”; 確認のために再度xを出力します。何も手を加えてないので5が出力されます。
std::cout << x++ << “\n”; この行でもインクリメントを行います。ただし、変数xの後に演算子++がついているのがポイントです。演算子を後ろにつけると、画面出力の後に演算が行われます。よって、出力は5です。
std::cout << x++ << “\n”; ひとつ上の行と同様ですが、前の行で++の演算があるので6が画面に出力されます。画面出力後にインクリメント++が実行されるので、この次の行ではxは7になっています。

最終的には下記が画面に表示されます。

3
4
5
5
5
6

おわりに

今回は代入演算子とインクリメント・デクリメントについて解説しました。どちらも別の書き方ができるので、プログラムを書く上で必須の知識ではありません。ただ、読みやすいプログラムを書くというのはプログラマーにとって非常に重要であり、代入演算子とインクリメントは覚えておきたい知識です。

特にインクリメントはプログラムが一気に見やすくなるので、多用されます。インクリメントと画面出力とどっちが先に実行されるかは豆知識みたいなものなので、1を足す動作をすることだけ覚えておくと良いでしょう。

重要なポイントは下記の通りです。

  • 代入演算子を使うと、変数に追加で足したり引いたりするプログラムがシンプルになる
  • x += 3 はxに3を足すことを意味する(x=x+3 と同じ意味になる)
  • インクリメントを使うと、変数に1を足すプログラムがシンプルになる
  • x++ はxに1足すことを意味する(x=x+1 と同じ意味になる)

細かい話もしたので長かったですが、重要なポイントはシンプルです。代入演算子とインクリメントを使って美しいプログラムを書けるようになりましょう。

次回からはアルゴリズム編です。具体的には、条件分岐であるif文について解説します。下記からどうぞ。

youtube動画でも解説しています。詰まったらこちらもどうぞ。