注文金額でランク判定
初段 / 目安 20分
閉店後のカウンターで、陽葵さんがノートを広げています。「お会計3000円以上は『常連候補』、1500円以上は『ゆっくり組』、それ未満は『ふらっと組』って分けて分析したいの。誰にどんな声をかけるかが変わるから」。売上の数字を、お客様の顔に翻訳する作業です。
ここで一番怖いのは、ちょうどの金額です。ぴったり3000円のお客様は「常連候補」でしょうか、「ゆっくり組」でしょうか。依頼文は「3000円以上」と言っています。「以上」はその数を含みます。つまり、ちょうど3000円は常連候補です。同じくちょうど1500円はゆっくり組です。
この1文字の差は、> と >= の差としてコードに現れます。ここを間違えたプログラムは、ほとんどの入力で正しく動き、境界のときだけ静かに間違えます。そういう間違いがいちばん見つかりません。
完成条件
注文金額を受け取ってランク名を返すメソッド judgeRank(int amount) を作ってください。
- 3000以上なら
"常連候補" - 1500以上3000未満なら
"ゆっくり組" - 1500未満なら
"ふらっと組" - 戻り値は String。印字ではなく
returnで返します
文言は完全一致です。「常連候補さん」や「ゆっくり組です」では通りません。
進め方
白紙から書いてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使う構文、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。
開かずに10分粘って進まないなら、①だけ開けてください。粘る時間そのものには価値がありません。価値があるのは、自分で書いた行が動いた瞬間です。
判定する順番を選べます。大きいほうから見ていくと、1つ外れた時点で範囲の上側が確定するので、次の条件は下側だけ書けば足ります。小さいほうから見ると、上限と下限を両方書くことになって長くなります。書き上げたら、1499・1500・2999・3000 の4つを自分で当てはめて確かめてください。
要件
- メソッド名は judgeRank、引数は int amount の1つ
- 3000以上なら「常連候補」を返すこと
- 1500以上3000未満なら「ゆっくり組」を返すこと
- 1500未満なら「ふらっと組」を返すこと
- 印字ではなく return で String を返すこと
入出力例
judgeRank(4200) → "常連候補"
judgeRank(3000) → "常連候補"
judgeRank(2999) → "ゆっくり組"
judgeRank(1500) → "ゆっくり組"
judgeRank(1499) → "ふらっと組"
judgeRank(450) → "ふらっと組"
judgeRank(0) → "ふらっと組"ヒント
前のヒントを開くと次が開きます。開かずに解けると未開封クリアです