【PHP】「関数って何ですか?」に2礼2拍手1礼で例えたらしっくりきた

coding-699318_640

後輩がプログラムを覚えたいと言いました。しかも自分が使う専用らしいけど作りたいWebサービスまで考えてあると。

ならあとはプログラムをガシガシ書いて作るだけじゃん。という状態ではあるのですがほぼ全くプログラムのことを知らないという状態だったので、できるだけ分かりやすいように自分がハマったところを思い出しながら説明をしました。いやぶっちぇけると私も3年ぶりくらいにプログラムを見たので、思い出しながらばかりの作業でしたが。

その中でちょくちょくつまずきながらも進めていったのですが、その中でつまづいたところが関数です。関数の部分で頭から煙が出ましたと。「えー同じ処理とか繰り返すときに楽じゃない」とか「関数ないと同じ処理の時とか面倒くさいじゃん」という説明をしていたのですが、しっくり来ておらず、

「2礼2拍手1礼って知ってる?」
「関数はよくわかりませんが、2礼2拍手1礼は知ってます!」

ということだったので、2礼2拍手1礼を例に出して説明したら後輩もすんごいしっくりきてたのでご紹介します。

空腹をしらない人に空腹は説明できない。まぁそこまで大きな問題ではないですがやはり何かを説明するときには何か知っているもので例えて上げるのは一番だなと感じました。

例えば普通に「2礼2拍手1礼」プログラムを書いた場合

torii-1389085_640
例えば以下のように2礼2拍手1礼を普通に順番通りにプログラムを書いたとします。横に例えばですが行数を記述します。

  1. 礼をする(10行)
  2. 礼をする(10行)
  3. 拍手をする(20行)
  4. 拍手をする(20行)
  5. 礼をする(10行)

すると合計70行のコードを書かないといけなくなります。面倒くさいですね。超面倒くさいですよね。同じこと書いてますよね。

関数を使って「2礼2拍手1礼」プログラムを書く

それでは関数を使ってプログラムを書いてみましょう。まず以下2つの関数を書きます。

関数:礼をする(10行)
関数:拍手をする(20行)

そして以下のように実行しますね。

  1. 関数「礼をする」を呼び出す(1行)
  2. 関数「礼をする」を呼び出す(1行)
  3. 関数「拍手をする」を呼び出す(1行)
  4. 関数「拍手をする」を呼び出す(1行)
  5. 関数「礼をする」を呼び出す(1行)

まぁ実際にはもう少し書くこともあるかもしれませんが、こちらでは合計35行のコードを書けばいいことになりますね。引数で回数を指定などでするようにできればもっと楽に書けそうです。

普通に書けば70行。関数を使って書けば35行。半分の行数で書くことができました。

例えば最初の全て順番に書く方法。この場合に礼の角度を30度から50度へ変更となった場合、プログラムは3箇所修正が必要になります。しかし後に書いた関数を使って処理する方法であれば、「関数:礼をする」のプログラムの角度部分1箇所を修正すれば終わりです。

関数ってプログラムの最初に勉強しますが、最初に概念を理解しづらい箇所なのかもしれません。2礼2拍手1礼は日本人であれば大体知っているので、これで説明すると理解されるかもしれませんよ。2礼2拍手1礼を知らないって場合は、そこから教えてあげましょう。多分日本に住んでると1年に1回くらい使いますから。

スポンサーリンク

URL :
TRACKBACK URL :

コメントはこちらへ!

*
*
* (公開されません)