プログラミングの関数とは?使い道や記述例を分かりやすく解説

プログラミングを学び始めて少し経つと、関数という概念が出てきて「何をしているのかよくわからない」「引数?戻り値?」となる方は多いのではないでしょうか?しかし、関数は案外難しいものではありません。しかも一度覚えてしまえば、他のプログラミング言語でも使える優れものです。そんな関数を初心者の方でも使いこなせるように、わかりやすく解説していきます。

この記事はこんな人にオススメです
  • 関数がよくわからない
  • 関数の使い方を知りたい
  • 関数の記述例を知りたい

関数とは

関数とは、一連の命令や処理をまとめたものです。関数を使うことで、同じ処理を何度も書く必要がなくなり、プログラムの構造も分かりやすくなります。

関数の基本構造

関数の基本構造は、どのプログラミング言語でも似たようなものです。一般的に以下の要素から構成されます。

関数の要素
  1. 関数名
    関数の名前は、その関数が何をするのかを示すものであり、他の部分から呼び出される際に使用されます。
  2. 引数(パラメータ)
    関数に渡す入力値。関数が動作するためのデータを提供します。
  3. 戻り値
    関数が処理を終えた後に返す値。関数の結果を他の部分で利用するために使用します。
  4. 関数の本体
    実際の処理が記述されている部分。ここに命令が書かれ、処理が行われます。

例えば税込みの計算を例に関数に落とし込んでみます(税率10%の場合)。今回はPythonを使って解説していきます。

def with_tax(price) :
    return price * 1.1

見慣れないキーワードが多いかもしれませんが、そんなに難しくありません。順番に見ていきましょう。

def

関数の最初に宣言することで、次の文が関数であることを示しています。例でいうところのwith_tax以降の部分です。

with_tax

こちらは関数名を示しています。関数を使うときに必要な名前で、自由に命名できます。あとに続く()に引数を指定できます。(引数については後述)

price

こちらは「引数」と呼ばれるものです。関数の処理で使う値や文字列を格納しておく変数で、無くても構いません。(price1, price2)といったように複数指定でき、変数と同様の命名ができます。

:

これはPython特有なのですが、関数の定義 def 関数名() のあとにはコロンをつけます。次の行からが関数の本体です。関数の本体にはインデントと呼ばれる空白スペースを入れる必要があります。(スペースは何個でもOK)

return price * 1.1

return は次の値を返しますよ。という意味です。price * 1.1は引数priceに1.1を掛けることを示しているので、この関数はpriceの1.1倍を返します。返す値のことを戻り値と呼びます。

上記の関数を実際に使った例がこちらです。

def with_tax(price) :
    return price * 1.1

juice = 120
juice_with_tax = with_tax(juice)

この例ではjuice変数を120で定義して、juice_with_tax変数を定義、with_tax関数に引数としてjuiceを渡しています。juice_with_tax変数は132になります。

次にcoffee変数を定義していきます。コーヒーは150円とします。

def with_tax(price) :
    return price * 1.1

juice = 120
juice_with_tax = with_tax(juice)

coffee = 150
coffee_with_tax = with_tax(coffee)

juiceと同様に関数を使い回すことができており、関数が再利用できることがわかります。ちなみにcoffee_with_taxの中身は165になっています。

複数の引数

先ほどの説明の通り、引数は複数指定できます。試しにwith_tax関数にtaxという引数を追加してみましょう。

def with_tax(price, tax) :
    return price * tax

with_tax(引数1,引数2) といった風に、必要に応じて引数を追加できます。tax引数の追加によって、軽減税率などの、複数の税率を使い分けたいケースにも対応できるようになります。

def with_tax(price, tax) :
    return price * tax

juice = 120
juice_with_tax = with_tax(juice, 1.1)
juice_with_reduced_tax = with_tax(juice, 1.08)

組み込み関数

元々、プログラミング言語には便利な関数「組み込み関数」があらかじめ用意されています。プログラミング言語によって異なるので、ここではPythonの組み込み関数をいくつかご紹介します。

print()

文字列や値を表示するには、print関数を使います。指定した引数を出力します。

number = 123
print(number)

number = 987
print(number)

array = [1,2,3]
print(array)

string = "文字列"
print(string)

次のように出力されます。

123
987
[1,2,3]
文字列

sum()

引数で指定した配列や値を全て足し合わせます。引数は複数指定可能です。

numbers = [1,2,3]
total = sum(numbers)
print(total)

total2 = sum(total, 3)
print(total2)

次のように出力されます。

6
9

sorted()

引数で指定した配列を昇順に並び替えます。

numbers = [3,4,5,2,1]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

出力は以下のようになります。

[1,2,3,4,5]

各プログラミング言語での関数

ここまではPythonで関数を記述してきましたが、プログラミング言語によって関数の宣言の仕方は違います。ただ構造は似たようなものなので、1つの言語で関数の使い方を覚えていると他の言語でもすぐ理解できます。

例の最後には出力用の関数を使っています。これはプログラミング言語によって違うものですが、言語を使うにつれて自然と覚えていきます。

Javascript

Javascriptでは関数の始まりを function で表します。関数の中身は {} で囲います。

function withTax(price) {
    return price * 1.1
}

const juice = 120
const juice_with_tax = withTax(juice)
// 出力
console.log(juice_with_tax);

php

phpは基本的にJavascriptの書き方と同じです。

function withTax($price) {
    return $price * 1.1;
}


$juice = 120;
$juice_with_tax = withTax($juice);
// 出力
echo $juice_with_tax;

Java

Javaでは関数以外に必要なコードが多いですが、詳細は割愛します。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        int juice = 120;
        int juiceWithTax = withTax(juice);
        // 出力
        System.out.println(juiceWithTax);
    }
    
    private static int withTax(double price) {
        return (int)(price * 1.1);
    }
}

まとめ

プログラミングの関数を使うと、コードを再利用できることに加えて、プログラムを分かりやすく整理することができます。初めて関数を学ぶ方は、まず簡単な例から始めて、徐々に複雑な関数へと挑戦してみましょう。

コメント