はじめてのKotlin入門
第10回 関数をつくろう

同じ処理を何度も呼び出すときに便利だよ

みなさん、こんにちは!

ハーゲンダッツよりスーパーカップバニラの方がぜったい美味しいと思っている、貧乏舌日本代表あらたまです。

さて今日は「はじめてのKotlin入門」の第10回目です。

おさらい

前回の「第9回 文字列を入れた変数のつかいかた」では 変数に文字列を入れて使う方法をお話しましたね。 前回の講座の画像

今回は関数を自分で作る、ということについてお話したいと思います。

Kotlin Playground」を開いて準備してくださいね。

「fun」ってなんだっけ?

第3回 『fun』の意味を知る」で、 関数のお話をしましたね。まとめると、

  • 「関数」とは呼び出すと何かしらの結果を返すもののこと
  • 「fun」はそれが関数であることを表している
  • 「main関数」はプログラムが起動されたときに最初に呼び出される関数である

ということでした。

少し回数が空きましたので、もう忘れちゃったなということは是非第3回を読み返してみてくださいね。

関数を作ってみよう

それでは「関数」について思い出したところで、早速自分で関数を作ってみましょう!

例えば呼び出されると画面に「どすこい!」と表示される関数、どのように作れば良いと思いますか?

正解はこんな感じです。

fun main() {
    println("Hello, world!!!")
}

fun printDosukoi() {
    println("どすこい!")
}

main関数とほとんど同じですね。違うのは関数名が「printDosukoi」になっていること。 そして「どすこい!」と表示していることです。

ちなみに今回は関数名を「printDosukoi」にしてみましたが、この名前は自分で好きな名前を付けられますよ!

しかしこのまま実行しても「どすこい!」とは表示されません。 プログラムを実行した画面

これは作った「printDosukoi関数」(以下、どすこい関数)がどこからも呼び出されていないからです。

main関数はプログラムが起動されたときにコンピューターから自動で呼び出されますが、 自分で作った関数は自動では呼び出されないのですね。

作った関数を呼び出してみる

では仕方ないので、どすこい関数は自分で呼び出しましょう。

次のように書き加えてください。

fun main() {
    println("Hello, world!!!")
    printDosukoi()
}

fun printDosukoi() {
    println("どすこい!")
}

main関数で「Hello, world!!!」と表示したあと、どすこい関数を呼び出しています。

これを実行すると、「どすこい!」と表示されました! どすこい!と表示された画面

自分で作った関数も、いままでprintln関数を呼び出していたのと同じような間隔で呼び出せるのですね。

どすこい関数を3回呼び出すと、当然「どすこい!」も3回表示されます。 どすこい!と3回表示された画面

なんのために関数を作るの?

関数を自分で作れることがわかりました。ですが、なんのために関数を作る必要があるのでしょうか?

今回の例で言えば、このように書いてもいいですよね。

fun main() {
    println("Hello, world!!!")
    println("どすこい!")
    println("どすこい!")
    println("どすこい!")
}

はい、もちろんこのように書いたとしても決して間違いではありません。動かした結果は同じですからね。

ですが例えばいま「どすこい!」と1行だけ表示しているのを、
「どすこい!」「どやさ!」「どげんかせんといかん!」
と3行連続で表示するように変えたいと思ったら…そのときはどうでしょう?

関数を作らない場合

関数を作らない場合は、次のように変更することになります。

fun main() {
    println("Hello, world!!!")
    println("どすこい!")
    println("どやさ!")
    println("どげんかせんといかん!")
    println("どすこい!")
    println("どやさ!")
    println("どげんかせんといかん!")
    println("どすこい!")
    println("どやさ!")
    println("どげんかせんといかん!")
}

実行すると、ちゃんと動いていますね。 プログラムを実行した画面

では、関数を作った場合はどうでしょう?

関数を作った場合

関数を作った場合は、次のように変更することになります。

fun main() {
    println("Hello, world!!!")
    printDosukoi()
    printDosukoi()
    printDosukoi()
}

fun printDosukoi() {
    println("どすこい!")
    println("どやさ!")
    println("どげんかせんといかん!")
}

こちらも実行すると、ちゃんと動いていますね。 プログラムを実行した画面

関数のメリット

あらためて関数を作らない場合と作った場合を見比べてみると、次のような利点があるのがわかります。

  • 関数を作ったほうが、変更箇所が少ないこと
  • 関数を作ったほうが、全体のプログラム行数が少なくなっていること
  • 関数を作ったほうが、全体がすっきりして見やすくなっていること

いまは文字を表示するだけの短いプログラムですのでその差は小さいですが、 今後プログラムが複雑になればなるほどこの関数の利点が大きくなってきますよっ。

今回はここまでです!

自分で関数を作って呼び出してみる、いかがでしたか?

次回は自分で作った関数への「引数」の渡しかた、についてお話したいと思います。

次回へ続く。

>> 続きの記事
【はじめてのKotlin入門】第11回 引数を受け取ろう