第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関数の中身を整理できます。
関数を使う意味
関数は、単にコードを短くするためだけに使用するものではありません。
大きなプログラムでは、処理を役割ごとに分けることが重要になります。
例えば、
入力処理
↓
計算処理
↓
表示処理
のように、それぞれを関数として分けることで、プログラム全体を理解しやすくできます。
まとめ
今回は、特定の処理をまとめて利用するための関数について学びました。
- 関数とは、特定の処理をまとめたものです。
- 関数は定義してから呼び出すことで実行できます。
- 引数を使用すると、関数へ値を渡すことができます。
- 戻り値を使用すると、関数から結果を受け取ることができます。
- 関数を利用すると、プログラムを整理しやすくなります。
関数を使うことで、プログラムを小さな処理単位に分割できるようになりました。
次回は、変数やデータを直接操作するためのポインタについて学びます。