1. test 1
  2. test 2
  3. test 3
  4. test 4
コース一覧
Java道場 ハレノヒ珈琲のレジを作る10問
複数注文の合計と件数

Java道場 ハレノヒ珈琲のレジを作る10問

Java入門で身に付けた技を、カフェのレジ開発で試す演習専用コースです。解説はありません。依頼と完成条件だけを読み、白紙から自分で組み立てます。手が止まったときのために、方針・使う構文・部分解の3段階のヒントを各問に用意しています。レシートの桁揃えから始まり、型の落とし穴、条件分岐、switch、配列の集計、メソッドへの分割、文字列の比較を経て、最後はクラス設計とレジアプリの統合まで、10問で Java の主要な道具を一巡します。1問15分から45分、全10問で約5時間です。Java入門を終えて「読めるけれど自分では書けない」と感じている方に向いています。

1
初段
01. レシートを整形して返せ15分
02. 税込計算の切り捨て事故を防げ15分
03. 注文金額でランク判定20分
04. メニュー番号で注文を受けろ20分
2
中段
01. 複数注文の合計と件数25分
02. 会計処理をメソッドに分けよ25分
03. 本日の注文を配列で管理せよ30分
04. 売れ筋メニューを探せ30分
3
師範
01. Order クラスを設計せよ35分
02. 総合 レジアプリ一気通貫45分

複数注文の合計と件数

中段 / 目安 25分

夕方、陽葵さんがカウンター越しに身を乗り出してきました。「4番テーブル、5品も頼んでくれたの! 品数と合計を一気に計算して。今から手で足すと絶対どこかで間違える自信があるわ」。

渡されるのは、その伝票に並んだ金額の一覧です。1品ぶんの金額が、注文された順に並んでいます。ここから2つの数を取り出します。何品あったかと、合計いくらかです。

数え上げの仕事は、たいてい同じ形をしています。まず入れ物を用意して0から始め、1つずつ見ながら足していく。この形を一度自分の手で書いておくと、これから何度も使えます。

もう1つ、レジには必ず来る場面があります。1品も注文されていない伝票です。合計は0円、件数も0件。割り算はしないので今回は壊れませんが、返す文言は決めておきます。

完成条件

注文金額の配列を受け取り、報告用の1行を組み立てて返すメソッド summarizeOrder(int[] prices) を作ってください。

  • 返す文字列の形は 5品 4200円 です
  • 数字と単位のあいだにスペースは入れません。品数と金額のあいだは半角スペース1つです
  • 配列が空のときは 注文なし を返します

{450, 520, 480, 1550, 1200} を渡したら 5品 4200円 が返ります。

進め方

白紙から書いてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使う構文、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。

開かずに10分粘って進まないなら、①だけ開けてください。粘る時間そのものには価値がありません。価値があるのは、自分で書いた行が動いた瞬間です。

件数は数え上げなくても分かります。配列は自分の長さを知っているからです。数え上げが要るのは合計のほうだけです。空の場合を先に片づけてしまうと、そのあとの本題が短く書けます。

要件

  1. メソッド名は summarizeOrder、引数は int[] prices の1つ
  2. 返す文字列の形は「5品 4200円」であること
  3. 品数は配列の要素数、合計は全要素の和とすること
  4. 配列が空のときは「注文なし」を返すこと
  5. 印字ではなく return で String を返すこと

入出力例

summarizeOrder([450,520,480,1550,1200]) → "5品 4200円" summarizeOrder([450,520]) → "2品 970円" summarizeOrder([480]) → "1品 480円" summarizeOrder([]) → "注文なし"

ヒント

前のヒントを開くと次が開きます。開かずに解けると未開封クリアです

①方針 空の配列の場合を先に返してしまいます。そのあと合計用の変数を0から始め、配列を1つずつ見ながら足していきます

ヒント 2ヒント 1 を開くと読めます
ヒント 3ヒント 2 を開くと読めます
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/09

関連レッスン

  • 会計処理をメソッドに分けよ

    税込計算と割引計算を、2つのメソッドという道具にまとめます。

  • 本日の注文を配列で管理せよ

    1日ぶんの注文を集計します。平均は整数の割り算のままでは出ません。

  • 売れ筋メニューを探せ

    一番多く注文された商品を探します。文字列を == で比べると足をすくわれます。

  • Order クラスを設計せよ

    注文という「もの」をクラスにします。データと振る舞いを1つに束ねます。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • カウンタ数を保持して増減する典型 UI
  • テーブルDB の表 (Excel のシートみたいなもの)
  • 配列サイズ固定の同型データの集まり
  • メソッドクラスに属する関数
  • 引数位置引数=順番で渡す。
  • 素数1 と自分自身でしか割り切れない自然数
main.java
学習モード
エディタを読み込んでいます

メモ

複数注文の合計と件数

⌘S で保存