1. test 1
  2. test 2
  3. test 3
  4. test 4
  5. test 5
  6. test 6
  7. test 7
コース一覧
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分

メニュー番号で注文を受けろ

初段 / 目安 20分

ランチの混雑が落ち着いたころ、陽葵さんがメニュー表に番号を書き込んでいます。「口頭注文は聞き間違いが多くて。『抹茶ラテ』が『抹茶ラッシー』に聞こえたこともあるの。番号で受けたいのよ」。番号はこう決まりました。

プレーンテキスト

1 珈琲 450円 2 抹茶ラテ 520円 3 シフォンケーキ 480円

ここで考えておくことが1つあります。お客様は 4 と言うかもしれません。0 かもしれません。マイナスかもしれません。 メニューに無い番号が来たときに何を返すか。それを最初に決めておかないと、あとで必ず事故ります。

師範はこう言います。「例外側から設計する者は事故らない」。正常な3つより先に、想定外の1つを書いておくということです。

完成条件

メニュー番号を受け取り、注文内容を1行の文字列で返すメソッド orderByNumber(int number) を作ってください。

  • 1 なら 珈琲 450円
  • 2 なら 抹茶ラテ 520円
  • 3 なら シフォンケーキ 480円
  • それ以外の番号はすべて その番号はありません

商品名と金額のあいだは半角スペース1つ、金額のうしろに「円」を付けます。文言は完全一致です。

進め方

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

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

番号のように「とびとびの決まった値」で分けるときは、if を並べるより読みやすい構文が Java にあります。その構文には、どれにも当てはまらなかったときの受け皿が用意されています。受け皿を先に書いてから、中身を埋めてください。

要件

  1. メソッド名は orderByNumber、引数は int number の1つ
  2. 1 なら「珈琲 450円」を返すこと
  3. 2 なら「抹茶ラテ 520円」を返すこと
  4. 3 なら「シフォンケーキ 480円」を返すこと
  5. 1から3以外の番号はすべて「その番号はありません」を返すこと
  6. 印字ではなく return で String を返すこと

入出力例

orderByNumber(1) → "珈琲 450円" orderByNumber(2) → "抹茶ラテ 520円" orderByNumber(3) → "シフォンケーキ 480円" orderByNumber(4) → "その番号はありません" orderByNumber(0) → "その番号はありません" orderByNumber(-1) → "その番号はありません" orderByNumber(99) → "その番号はありません"

ヒント

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

①方針 番号ごとに返す文字列が決まっているだけです。どれにも当てはまらなかった場合を先に決めてから、3つの番号を埋めます

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

関連レッスン

  • 複数注文の合計と件数

    注文の配列を走査して、品数と合計を1つの報告にまとめます。

  • Order クラスを設計せよ

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

  • 注文金額でランク判定

    お会計の金額を3つに分類します。境界のちょうどの値でつまずかないようにします。

  • 税込計算の切り捨て事故を防げ

    整数のまま計算すると1円ずれます。どこでキャストするかが分かれ目です。

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

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

  • 設計何をどう作るかを決める前工程
  • メソッドクラスに属する関数
  • 引数位置引数=順番で渡す。
main.java
学習モード
エディタを読み込んでいます

メモ

メニュー番号で注文を受けろ

⌘S で保存