C++入門 for if などの基本からサンプル実行までを解説

公開日:2020.08.20

スキルアップ
 

C++は、C言語をもとに機能を拡張した汎用プログラミング言語です。「シープラプラ」または「シープラ」と呼ばれ、手続き型プログラミングの他にオブジェクト指向プログラミングやジェネリックプログラミング、データ抽象化などの複数のプログラミングパラダイムを持っています。

C++は1983年に誕生し、度重なる標準化によって標準規格が設定され、最新規格は実用ベースではC++17、2020年3月に技術的最終決定がされた次期バージョンはC++20となります。C言語と同様にマシン語に近い低水準言語としても扱える一方で、高度なアプリケーション開発に用いる高水準言語としても使用できるため、非常に汎用性が高い言語として設計されています。

他のC言語系同様に習得が難しいと言われているC++ですが、基本は非常にシンプルな構造をしているため、一つずつステップアップしていけば決して難しい言語ではありません。ここではC++の入門として、記述方法からサンプルコードの実行までを解説していきます。

C++入門

では早速C++の入門として知っておくべき基本的な文法を見ていきましょう。

これから解説する文法は他の言語の入門でも共通する「コメント」「文字列」「標準出力」「関数定義」「for文」「if文」です。

この6つの要素を知っておくことで、基礎を学ぶためのテキストや学習サイト、講座などで目にするサンプルコードがなにを意味しているのか読みやすくなります。

コメントの方法

まずはコメントの書き方です。C++の場合コメントは、1行の場合は行頭に「//」(スラッシュを2つ)、複数行の場合は「/*」で始め「*/」で閉じる形で表記します。

例:

// 1行コメントの書き方
/*
複数行
コメント
の書き方
*/

文字列(string)

文字列は通常は文字列変数をstringで定義し、"文字列"のように、ダブルクォーテーションで出力したい文字列をくくります。文字列変数 s1 にサンプルテキスト1を、文字列変数s2にサンプルテキスト2 を代入する場合は、次のようになります。

例:

string s1 = "サンプルテキスト1";
string s2 = "サンプルテキスト2";

標準出力(cout)

標準出力(cout)は、画面への表示を担います。この場合の画面とはWindowsなどのアプリケーションウィンドウではなく、コマンドラインあるいはコマンドプロンプト画面への出力になります。サンプルテキストという文字列を標準出力に表示する場合は、次のようになります。

例:

std::cout << "サンプルテキスト";

std::coutに対して << 演算子を用いることで、<< 演算子の右に記述したオブジェクトの値が追記されます。たとえば、先ほどのサンプルテキストという文字列に「!!!」という文字列を追記する場合は、次のようになります。

例:

std::cout << "サンプルテキスト" << "!!!";

関数の定義

C++では、関数を呼び出す前に定義しておく必要があります。関数を定義するときは、関数が受け取る引数と変数型、関数の戻り値の変数型の3つを定義しなければいけません。たとえば、数値(int型)を返す、引数なしの関数を定義する場合は、次のようになります。

例:

// 戻り値の型を定義(int型)して shout 関数を作成
int shout() {
}

なお、戻り値が必要ない場合は、void型として関数を定義します。先ほどのshout関数を戻り値なしで定義する場合は、次のようになります。

例:

// 戻り値のなしで shout 関数を作成
void shout() {
}

引数を渡す場合の記述は、カッコの中に行います。たとえば、先ほどのshout関数にint型の引数を1つ追加したい場合は、次のようになります。

例:

void shout(int i) {
}

for 文

同じ命令を繰り返す場合に使用する「for文」 は、一般的なプログラムの記述方法とほぼ同じです。int型の変数 i を1から10までカウントアップする場合は、次のようになります。

例:

// int型のiが1から10までカウントアップされる
for (int i = 1; i <= 10; i++) {
std::cout << i;
}

if 文

実行条件を設定し、条件に応じて処理を分岐させるために使用するのがif文です。if文はコードの中で指定した条件に対してtrue(真)であった場合にのみ命令を実行します。false(偽)であった場合、命令はスキップされ、次の命令文を実行します。

また、if文の定義に合致しない場合は異なる処理を行うように分岐する場合、else文で異なる命令を定義することができます。

int型変数iが5以下かどうかを判定する場合は、次のようになります。

例:

int i = 1;
if (i < 5) {
std::cout << i << " < 5";
} else {
std::cout << i " >= 5";
}

C++を実行してみよう!

ではここからは、実際にC++のサンプルコードを実行してみましょう。

C++の開発環境はローカルに構築することもできますが、C++に触れてみたいという段階での環境構築は作業量が多いため、構築の時点で挫折してしまう人も少なくありません。そのため、入門の段階では、オンラインのC++実行環境の活用をおすすめします。

C++ shellはオンラインでの実行環境で、ある程度の規模のコードまで記述して実行することができます。

今回はこちらを元にサンプルコードを実行して確認していきます。

Hello World

まずは定番のHello Worldから始めましょう。C++ Shellは、ページを開くと既にヘッダーにインクルードが入っているので、以下のサンプルコードを挿入します。

サンプルコード:

int main()
{
std::cout << "Hello World" << "\n";
}

右下のRUNを実行すると、構文エラーがなければ「execution」タブに結果が出力されます。

無事に実行され、「Hello World」が表示されました。

サンプルコードの解説

ここでは、int型の戻り値を持つmain関数(C++で最初に実行される関数)を定義し、その実行内容として、標準出力にHello Worldを送っています。

関数の定義と実行

では次に、main関数以外にも関数の定義を行い、実行してみましょう。

今回は文字列の表示を行う構文を作ります。そしてmain関数で作成した関数を呼び出して実行します。なお作成する関数は戻り値を必要としないため、voidを使用します。

サンプルコード:

void shout()
{
std::cout << "Hello World" << "\n";
}

int main()
{
//ここで関数を実行します
shout();
}

無事 Hello Worldが表示されました。

サンプルコードの解説

ここでは、main関数には、新たに作成したshout関数を呼び出す処理のみ記述しています。そして、shout関数のほうにHello Worldを表示させる処理を記述しています。
実際にC++の処理では、まずmain関数を呼び出し、その中にshout関数を呼び出せという記述があるため、それにしたがってshout関数を呼び出しています。

for 文の実行

では、ループ処理を行ってみましょう。ここでは、先に紹介した10までカウントアップしながらループ処理を行うfor文を使用して、カウントアップされた数値を出力していく関数を作成します。

サンプルコード:

void shout(int i)
{
// Hello World にループの数字を追加
std::cout << "Hello World" << i << "\n";
}

int main()
{
//ここでfor文でループして関数を実行します
for (int i = 1; i <= 10; i++) {
shout(i);
}
}

10回ループ処理が行われ、実際に1~10までのiの値がHello Worldと共に出力されました。

サンプルコードの解説

ここでは、まずshout関数で標準出力に「Hello World」とiに代入された数字を表示する文字列を渡します。この際、ループでカウントアップした数値を受け取るための引数 int型の変数 iを設定します。

次にメインの関数でfor文を使用して、ループ処理が実行されるごとに1ずつカウントアップしながらshout関数を呼び出しています。

if 文の実行

では最後に、if~else文に挑戦しましょう。ここでは、iが5以下の場合にのみ「Hello World + 数字」の文字列を出力するコードを作成します。

サンプルコード:

void shout(int i)
{
// i が 5以下の場合のみ出力する
if (i <= 5) {
// Hello World にループの数字を追加
std::cout << "Hello World" << i << "\n";
}
}

int main()
{
//ここでfor文でループして関数を実行します
for (int i = 1; i <= 10; i++) {
shout(i);
}
}

if文で定義された5以下の場合にのみ、「Hello World+数字」の文字列が表示されました。

サンプルコードの解説

ここまでのサンプルコードを使用して、main関数で1から10までカウントアップを行い、shout関数を呼び出します。shout関数では、if文を使用して、渡されたint型変数iが5以下の場合のみHello World+引数の数字を表示しています。

難しいと言われるC++も基本は簡単!

C++は難しいと言われていますが、基本形はこのように決して難しいものではありません。いきなりアプリケーションの設計と開発を目指すのではなく、一つずつの構文を覚えながら簡単な基本的なコードから挑戦していけば、決して習得困難な言語ではないことがサンプルからもおわかりいただけるかと思います。

C++は多くの分野で活用されており、今後も需要は安定している言語と言われています。エンジニアを目指すなら、習得に挑戦してみてはいかがでしょうか。

AKKODiSでは、C++を扱うエンジニアの求人を幅広く取り扱っています。業務内容としては社内系システムや組み込み系システムなどがあり、エンジニア未経験からでも可能な求人もあります。ぜひ一度お問い合わせください。

(2020年8月現在)

AKKODiSコンサルティングに関するお問い合わせ