タグ

第9回 特定の処理をまとめる関数の実装

はじめに

前回は、文字の並びを扱うための文字列について学びました。

ここまでで、C++では

  • 変数によるデータの保存
  • 条件分岐による処理の選択
  • 反復処理による繰り返し
  • 配列による複数データの管理
  • 文字列による文字データの管理

など、基本的な処理を実装できるようになりました。

しかし、プログラムが大きくなると新しい問題が発生します。

例えば、同じ計算処理を何度も使用する場合、そのたびに同じコードを書く必要があります。

int result1 = 10 + 20; int result2 = 30 + 40; int result3 = 50 + 60;

このように同じような処理を何度も書くのは、管理が大変になります。

そこでC++では、特定の処理をまとめて再利用するための関数を使用します。

今回の到達目標

  • 関数とは何かを説明できる。
  • 関数を定義できる。
  • 関数を呼び出せる。
  • 引数を使用できる。
  • 戻り値を使用できる。

関数とは

関数とは、特定の処理をまとめたものです。

例えば、これまで使用してきた

std::cout

も、実は画面に文字を表示するための機能を持ったものです。

このように、複雑な処理をひとまとめにして、必要な場所から呼び出せるようにしたものが関数です。

関数を使用すると、

  • 同じ処理を何度も書かなくてよい
  • プログラムを整理できる
  • 修正する場所を減らせる

というメリットがあります。

関数を定義する

関数を作成することを関数の定義といいます。

基本的な書き方は次の通りです。

戻り値の型 関数名() {    処理 }

例えば、文字を表示するだけの関数を作成します。

#include <iostream> void hello() {    std::cout << "Hello"; }

この関数では、

void

を使用しています。

voidは、値を返さない関数であることを表します。

関数を呼び出す

関数は定義しただけでは実行されません。

実行するには、関数を呼び出す必要があります。

呼び出しは次のように書きます。

関数名();

先ほど作成したhello関数を呼び出してみます。

#include <iostream> void hello() {    std::cout << "Hello"; } int main() {    hello(); }

実行結果

Hello

hello();と書くことで、関数の中に書いた処理が実行されます。

引数

関数に値を渡したい場合は、引数を使用します。

例えば、名前を受け取って表示する関数を考えます。

#include <iostream> #include <string> void hello(std::string name) {    std::cout << "こんにちは " << name; } int main() {    hello("Taro"); }

実行結果

こんにちは Taro

この場合、

std::string name

が引数です。

そして、

hello("Taro");

で渡した値が、関数内のnameに入ります。

複数の引数

関数には複数の値を渡すこともできます。

例えば、2つの数値を足す関数を作ります。

int add(int a, int b) {    return a + b; }

この関数では、

int a int b

の2つの引数を受け取っています。

呼び出す場合は、

int result = add(3, 5);

と書きます。

この場合、

a → 3 b → 5

として計算されます。

戻り値

関数で処理した結果を呼び出し元へ返すことができます。

この返す値を戻り値といいます。

戻り値を返すにはreturnを使用します。

int add(int a, int b) {    return a + b; }

この関数では、

return a + b;

によって計算結果を返しています。

呼び出し側では、

int result = add(3, 5); std::cout << result;

とすることで、結果を利用できます。

実行結果

8

main関数について

これまでのプログラムでは、必ず

int main() { }

を書いてきました。

実は、このmainも関数の一つです。

main関数は、プログラムを実行したときに最初に呼び出される特別な関数です。

C++のプログラムは、main関数から処理が開始されます。

関数を使ったプログラム

ここまで学んだ内容を組み合わせてみましょう。

#include <iostream> int add(int a, int b) {    return a + b; } int main() {    int result = add(10, 20);    std::cout << result; }

実行結果

30

計算処理を関数として分けることで、main関数の中身を整理できます。

関数を使う意味

関数は、単にコードを短くするためだけに使用するものではありません。

大きなプログラムでは、処理を役割ごとに分けることが重要になります。

例えば、

入力処理 ↓ 計算処理 ↓ 表示処理

のように、それぞれを関数として分けることで、プログラム全体を理解しやすくできます。

まとめ

今回は、特定の処理をまとめて利用するための関数について学びました。

  • 関数とは、特定の処理をまとめたものです。
  • 関数は定義してから呼び出すことで実行できます。
  • 引数を使用すると、関数へ値を渡すことができます。
  • 戻り値を使用すると、関数から結果を受け取ることができます。
  • 関数を利用すると、プログラムを整理しやすくなります。

関数を使うことで、プログラムを小さな処理単位に分割できるようになりました。

次回は、変数やデータを直接操作するためのポインタについて学びます。