008-004-009

商品の税込価格を計算するメソッド

初級

問題説明

複数の引数: 関連する値をメソッドに渡す

メソッドが処理を実行するために複数の情報を必要とする場合、複数の引数を受け取ることができます。各引数には特定の型と目的があり、メソッド呼び出し時には順序が重要です。

一緒に複数の引数を使ったメソッドについて学んでいきましょう!

学習ポイント

  • 引数の順序: 実引数は仮引数の位置に一致させる
  • 型の混合: 異なる型を組み合わせ可能(int, double, String)
  • 型キャスト: 必要に応じて型を変換
  • 戻り値: メソッドは計算結果を返せる

引数宣言のパターン

パターン使用場面
同じ型(int x, int y)座標、寸法
型の混合(int price, double rate)精度が必要な計算
オブジェクト + プリミティブ(String name, int age)エンティティデータ

よくある間違い

間違えても大丈夫です。引数の順序と型をもう一度確認してみてください。

間違い1: 引数の順序を間違える

不正な結果:

// メソッドは(price, rate)を期待
calculateTaxPrice(0.1, 1000);  // 間違い!税率が先、価格が後

正しいコード:

calculateTaxPrice(1000, 0.1);  // 価格が先、税率が後

間違い2: 整数除算での精度損失

精度が失われる:

int result = price * (1 + taxRate);  // コンパイルエラー!
// 明示的なキャストなしにdoubleをintに代入できない

明示的なキャスト:

int result = (int)(price * (1 + taxRate));  // 小数点以下切り捨て

型変換の流れ

int price = 1000;
double taxRate = 0.1;

// ステップ1: intがdoubleに昇格
// 1000 * (1 + 0.1) = 1000.0 * 1.1 = 1100.0

// ステップ2: intにキャスト(切り捨て)
// (int)1100.0 = 1100

実務での応用

  • 金融: calculateTax(amount, rate), convertCurrency(amount, exchangeRate)
  • 図形: calculateArea(width, height), distance(x1, y1, x2, y2)
  • 日付/時刻: addDays(date, count), formatDate(date, pattern)
  • 文字列: substring(text, start, end), padString(text, length, char)

設計のガイドライン

  • 引数は3〜4個までに制限(それ以上はオブジェクトを使用)
  • 引数は論理的な順序で並べる(主語を修飾語より先に)
  • 説明的な引数名を使用
  • 単位を文書化(セント vs ドル、秒 vs ミリ秒)

前提知識の詳細説明

この問題を解くために必要な知識を確認しましょう。

基本概念

この問題で扱うプログラミングの基本概念を理解することが、正しい解答への第一歩です。コードの各要素がどのように連携して動作するかを把握しましょう。

実装アプローチ

問題を解くための考え方を段階的に整理します:

  1. 問題文を読み、入力と出力の関係を理解する
  2. 必要な変数やデータ構造を特定する
  3. 処理の流れを組み立てる
  4. テストケースで動作を確認する

学習目標

  • 複数引数メソッドの定義方法を説明できる
  • 引数の型と順序の関係を解釈できる

コードを実行してみませんか?

この問題のコードエディタと実行機能を使用するには、ログインしてください。

アカウントをお持ちでない方