サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

引数とパラメーターの違いとは?初心者向けに仮引数・実引数まで分かりやすく解説

引数とパラメーターの違いとは?初心者向けに仮引数・実引数まで分かりやすく解説

結論として、パラメーターはメソッドや関数を定義するときに用意する受け取り口引数はメソッドや関数を呼び出すときに実際に渡す値です。

ただし、実際のIT現場では両方をまとめて「引数」と呼ぶことも多く、厳密に区別されない場合があります。ソースコードを正しく読むには、定義側なのか呼び出し側なのかを確認することが大切です。

  1. 引数とパラメーターの違い
  2. パラメーターとは
  3. 引数とは
  4. 処理の流れで理解する
  5. 身近な例で考える
  6. 仮引数と実引数の違い
  7. なぜ現場では混同されるのか
  8. 実際のIT現場での利用例
    1. 社員検索メソッド
    2. メール送信メソッド
    3. ログイン処理
  9. 引数とパラメーターが重要な理由
  10. 初心者が混乱しやすいポイント
    1. 引数とパラメーターを完全に別の仕組みだと思う
    2. 変数名と値を混同する
    3. 引数の順番を間違える
    4. データ型が一致していない
  11. 業務でよくあるトラブル
    1. 必須の引数が空になっている
    2. 引数の順番が逆になっている
    3. パラメーター追加後に呼び出し元を修正していない
    4. nullが渡されている
  12. 原因を切り分ける順番
  13. ソースコードの確認方法
    1. GUIで確認する方法
    2. 便利なショートカットキー
    3. PowerShellで確認する方法
  14. ログで確認するポイント
  15. 筆者が現場で経験した失敗
  16. 新人がやりがちなミス
  17. 業務で上司へ報告するポイント
  18. エスカレーションするタイミング
  19. 応用知識
    1. デフォルトパラメーター
    2. 可変長引数
    3. 名前付き引数
    4. コマンドや設定値でも使われるパラメーター
  20. 関連するIT用語
  21. よくある質問(FAQ)
    1. 引数とパラメーターは同じ意味ですか?
    2. 仮引数とパラメーターは同じですか?
    3. 実引数と引数は同じですか?
    4. 引数の名前はパラメーター名と同じでなければいけませんか?
    5. パラメーターを変更すると何が起きますか?
  22. まとめ

引数とパラメーターの違い

比較項目 パラメーター 引数
使われる場所 メソッドや関数の定義側 メソッドや関数の呼び出し側
役割 値を受け取るための変数 実際に渡す値
日本語での呼び方 仮引数 実引数
英語 Parameter Argument

定義するときはパラメーター、呼び出すときは引数と覚えると整理しやすくなります。

パラメーターとは

パラメーター(Parameter)とは、メソッドや関数が値を受け取るために定義する変数です。日本語では仮引数と呼ばれます。

例えば、2つの数値を足し算する処理では、受け取る数値をあらかじめ定義します。

int add(int number1, int number2) {
    return number1 + number2;
}

この例では、次の2つがパラメーターです。

number1とnumber2には、呼び出し時に渡された値が入ります。

引数とは

引数(Argument)とは、メソッドや関数を呼び出すときに実際に渡す値です。厳密には実引数と呼ばれます。

int result = add(10, 20);

この例では、10と20が引数です。

定義側のパラメーター 呼び出し側の引数
number1 10
number2 20

処理が実行されると、number1へ10、number2へ20が渡されます。

処理の流れで理解する

  1. メソッドを定義するときにパラメーターを用意する
  2. 呼び出し側が引数を渡す
  3. 引数の値がパラメーターへ代入される
  4. メソッドがパラメーターを使って処理する
  5. 必要に応じて戻り値を返す

引数が入力する実データ、パラメーターがそのデータを受け取る箱という関係です。

身近な例で考える

宅配便の申込書で考えると分かりやすくなります。

宅配便の例 プログラム上の意味
氏名欄 パラメーター
山田太郎と記入する 引数
住所欄 パラメーター
東京都千代田区と記入する 引数

申込書の入力欄は事前に用意された受け取り口です。そこへ実際に記入する内容が引数にあたります。

仮引数と実引数の違い

日本語の技術資料では、パラメーターと引数を次のように表現することがあります。

用語 意味
仮引数 メソッドや関数の定義側に書く変数
実引数 メソッドや関数を呼び出すときに渡す値

厳密な説明が必要な場面では、「パラメーター」よりも「仮引数」、「引数」よりも「実引数」と表現した方が誤解を防げます。

なぜ現場では混同されるのか

実際の開発現場では、パラメーターも引数もまとめて「引数」と呼ばれることがあります。

例えば、レビューで「このメソッドの引数を追加してください」と言われた場合、実際には定義側のパラメーター追加を指していることがあります。

会話だけでは分かりにくいため、次の点を確認すると安全です。

実際のIT現場での利用例

社員検索メソッド

Employee findEmployee(int employeeId)

employeeIdはパラメーターです。

Employee employee = findEmployee(1001);

1001は引数です。

メール送信メソッド

sendMail(String address, String subject, String body)

address、subject、bodyがパラメーターです。

sendMail("user@example.com", "障害連絡", "システム障害が発生しました");

メールアドレス、件名、本文として渡している実際の値が引数です。

ログイン処理

login(String userId, String password)

userIdとpasswordはパラメーターです。画面から入力されたユーザーIDとパスワードが引数として渡されます。

引数とパラメーターが重要な理由

引数とパラメーターを使うと、同じ処理をさまざまな値で再利用できます。

例えば社員番号1001だけを検索する処理を直接書くと、別の社員を検索できません。社員番号をパラメーターとして受け取る設計にすれば、渡す引数を変えるだけで複数の社員を検索できます。

呼び出し例 検索対象
findEmployee(1001) 社員番号1001
findEmployee(1002) 社員番号1002
findEmployee(2001) 社員番号2001

初心者が混乱しやすいポイント

引数とパラメーターを完全に別の仕組みだと思う

両者は別々の機能ではありません。引数として渡した値を、パラメーターが受け取る関係です。

変数名と値を混同する

number1はパラメーター名、10は引数として渡す値です。変数と実際のデータを分けて考える必要があります。

引数の順番を間違える

複数の引数を渡す場合は、パラメーターの定義順に合わせます。

registerUser(String name, String department)

このメソッドへ部署名と氏名を逆の順番で渡すと、登録内容が入れ替わる可能性があります。

データ型が一致していない

整数型のパラメーターへ文字列を渡すなど、型が一致しない場合はコンパイルエラーや実行時エラーになることがあります。

業務でよくあるトラブル

必須の引数が空になっている

ユーザーID、商品コード、ファイル名などの必須値が空だと、検索失敗や登録エラーにつながります。

引数の順番が逆になっている

同じ文字列型のパラメーターが複数ある場合、順番を間違えてもコンパイルエラーにならないことがあります。そのため、誤ったデータが登録されるまで気付かないケースがあります。

パラメーター追加後に呼び出し元を修正していない

メソッド定義へ新しいパラメーターを追加すると、既存の呼び出し箇所でも新しい引数を渡す必要があります。

nullが渡されている

引数としてnullが渡され、メソッド内部でそのまま利用すると、NullPointerExceptionなどのエラーが発生する場合があります。

原因を切り分ける順番

  1. エラーが発生したメソッド名を確認する
  2. メソッド定義のパラメーターを確認する
  3. 呼び出し側の引数を確認する
  4. 引数の数が一致しているか確認する
  5. 引数の順番が正しいか確認する
  6. データ型が一致しているか確認する
  7. null、空文字、0などが渡されていないか確認する
  8. 呼び出し元がほかにもないか検索する

定義側と呼び出し側を並べて確認すると、原因を見つけやすくなります。

ソースコードの確認方法

GUIで確認する方法

Visual Studio、Visual Studio Code、Eclipse、IntelliJ IDEAなどの開発ツールでは、メソッド名へマウスポインターを合わせるとパラメーター情報が表示されます。

メソッド名を右クリックして「定義へ移動」または「宣言へ移動」を選ぶと、パラメーターの型や順番を確認できます。

便利なショートカットキー

操作 代表的なショートカット
定義へ移動 F12
入力候補を表示 Ctrl+Space
ファイル内検索 Ctrl+F
プロジェクト全体を検索 Ctrl+Shift+F

開発ツールやキーボード設定によって、操作方法が異なる場合があります。

PowerShellで確認する方法

PowerShellでは、メソッド名を含むファイルを検索できます。

Get-ChildItem -Recurse -Filter *.java | Select-String "findEmployee"

定義箇所と呼び出し箇所の両方を確認し、パラメーターと引数が一致しているか調べます。

ログで確認するポイント

引数に関する不具合では、次の内容をログから確認します。

ただし、パスワード、個人情報、アクセストークンなどをログへそのまま記録してはいけません。機密情報はマスキングし、社内ルールに従って取り扱います。

筆者が現場で経験した失敗

新人の頃、氏名と部署名を受け取るメソッドで、2つの引数を逆の順番で渡したことがあります。どちらも文字列型だったためエラーにならず、テストデータを確認するまで間違いに気付きませんでした。

原因は、メソッド名だけを見て呼び出し、パラメーターの順番を確認していなかったことです。

それ以降は、同じ型のパラメーターが複数ある場合、定義へ移動して順番を確認し、変数名も意味が分かる名前にするよう意識しています。

新人がやりがちなミス

業務で上司へ報告するポイント

「引数がおかしい」だけではなく、どのパラメーターへ何の値が渡されたかを具体的に報告すると、調査が進みやすくなります。

エスカレーションするタイミング

応用知識

デフォルトパラメーター

プログラミング言語によっては、パラメーターへ初期値を設定できます。呼び出し時に引数を省略すると、設定済みの値が使われます。

可変長引数

可変長引数は、渡す引数の数を固定しない仕組みです。複数の値をまとめて受け取りたい場合に利用されます。

名前付き引数

PythonやC#などでは、パラメーター名を指定して引数を渡せる場合があります。順番による間違いを減らせるのが利点です。

コマンドや設定値でも使われるパラメーター

パラメーターという言葉は、メソッドだけでなくコマンドや設定でも使われます。

例えばPowerShellでは、コマンドに付けるオプションをパラメーターと呼びます。

Get-ChildItem -Path C:\Logs -Recurse

この例では、-Pathや-Recurseがコマンドのパラメーターです。プログラミングの仮引数とは使い方が少し異なるため、文脈に注意します。

関連するIT用語

よくある質問(FAQ)

引数とパラメーターは同じ意味ですか?

広い意味では同じように使われます。ただし厳密には、定義側がパラメーター、呼び出し側で渡す実際の値が引数です。

仮引数とパラメーターは同じですか?

はい。一般的には、メソッドや関数の定義側に書く変数を仮引数またはパラメーターと呼びます。

実引数と引数は同じですか?

厳密には、呼び出し時に渡す値を実引数と呼びます。現場では実引数を省略して、単に引数と呼ぶことが多くあります。

引数の名前はパラメーター名と同じでなければいけませんか?

いいえ。呼び出し側の変数名と、定義側のパラメーター名は異なっていても問題ありません。値の型や順番が一致していることが重要です。

パラメーターを変更すると何が起きますか?

パラメーターの数、型、順番を変更すると、呼び出し元の修正が必要になる場合があります。共通メソッドでは影響範囲が広くなるため、変更前に利用箇所を確認します。

まとめ

引数とパラメーターは、メソッドや関数へデータを渡すために使われる用語です。

ソースコードを読むときは、「定義側にある変数か」「呼び出し側で渡している値か」を確認してください。この見方を身に付けると、メソッドの役割やエラーの原因を把握しやすくなります。

モバイルバージョンを終了