
はじめてのC言語 | 第9回
はじめに|忙しくなると、追いつかなくなる
カフェが少し混んできました。
- 注文を聞いて
- ドリンクを作って
- お客さんに提供して
- 会計をする
最初は、一つひとつの動きを意識していたのに、
忙しくなるにつれて無意識になり、ある時ふと我に帰ります。
「今、何をしていたんだっけ?」
プログラムを書いているときも、
同じことが起こります。
上から順番に書いているはずなのに、
途中で流れが分からなくなる。
その理由は、とてもシンプルです。
カフェの仕事は、最初は一本の長い流れ
実はこの時、頭の中ではこんなふうに考えています。
- 注文を聞く
- 材料を準備する
- ドリンクを作る
- お客さんに渡す
これら全ては、一連の作業です。
プログラム初心者も、
最初はこの形でコードを書き始めます。
人は自然に「仕事の名前」で考える
でも、少し慣れてくると、
店員さんの頭の中は、こう変わります。
- 「今は、注文を受けている」
- 「次は、ドリンクを作る」
- 「そのあと、会計をする」
細かい動きは、もう意識していません。
人は自然に、
作業を“仕事の名前”でまとめて考えるのです。
この考え方が、そのまま
プログラミングの「関数」になります。
関数とは、カフェの「レシピカード」
関数は、カフェのキッチンにある
レシピカードのようなものです。
レシピカードには、
いつも決まったことが書いてあります。
- レシピの名前
- 必要な材料
- 作り方
- できあがり
「この名前を呼べば、決まった手順で動く」
それが、関数です。
レシピと関数の対応関係
カフェのレシピを、
そのまま関数に置き換えてみます。
| カフェのレシピ | C言語の関数 |
|---|---|
| レシピ名 | 関数名 |
| 材料 | 引数 |
| 作り方 | 処理 |
| できあがり | 戻り値 |
- 名前で呼べて
- 材料を渡すと
- 結果が返ってくる
関数は、とても素直な仕組みです。
ここで一度だけ、
C言語の関数をそのまま見てみましょう。
細かい文法を理解する必要はありません。
「レシピの形は、こう書かれるんだな」
という確認だけで十分です。
int make_drink(int sugar)
{
int cup = sugar;
return cup;
}これは、カフェの「ドリンクを作るレシピ」を、
C言語で書いたものです。
- make_drink …… レシピの名前(関数名)
- sugar …… 材料(引数)
- return cup; …… できあがり(戻り値)
中で何をしているかは、
今は気にしなくて大丈夫です。
- 名前を呼ばれて
- 材料を受け取り
- 結果を返す
関数は、ただそれだけの仕組みです。
main は「今日の動きを考える人」
カフェには、
その時間帯の流れを考える役割があります。
- 午前中はモーニング
- お昼はランチタイム
- 夜はディナータイム
この時間帯に合わせて流れを考えるだけ。
調理の細かい手順は、
レシピカードに任せます。
プログラムで言うと、
この役割が main です。
main は、
細かい作業をしません。
「どのレシピを、どの順番で使うか」
それだけを考えます。
レシピが大きすぎると、混乱する
もし、1枚のレシピカードに、
- 注文を受ける
- ドリンクを作る
- 会計をする
全部が書いてあったら、どうでしょう。
どこを直せばいいのか分からず、
途中だけ変えることもできません。
これは、大きすぎる関数です。
レシピが小さすぎても、困る
逆に、
- カップを出す
- スプーンを取る
- ミルクを入れる
これが全部、別のレシピだったら?
流れが見えなくなり、
「結局、何をしているのか」が分かりません。
これは、小さすぎる関数です。
ちょうどいい関数サイズの目安
カフェに置きかえると、ちょうどいい
「関数の大きさ」がイメージできます。
店員さんが、「今、何してる?」と聞かれて、
すぐ答えられる単位。
- ドリンクを作っている
- 注文を受けている
- 会計をしている
これが、ちょうどいい関数の大きさです。
関数にすると、何が助かるのか
レシピを関数にすると、
- 迷わなくなる
- 間違いが減る
- 直す場所が分かりやすい
- 全体の流れが読める
この時点で、プログラムは、
人の考え方に近づいていきます。
まとめ|関数は、考え方を整理する道具
関数は、
難しい仕組みではありません。
仕事を、人が自然に考えられる形に
整理するための道具
それが、関数です。
次の回では、このカフェのレシピを、
C言語の関数としてどう書くかを、
少しずつ見ていきます。
焦らず、
一つずつ進んでいきましょう。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本

