第9回|関数入門:カフェのレシピで覚える「仕事をまとめる」考え方

当サイトでは、コンテンツの一部に広告を掲載しています。
第9回|関数入門:カフェのレシピで覚える「仕事をまとめる」考え方

はじめての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 のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次