研修で昨日からJAVAをやることになり課題を出されたのですが、booleanとelse~ifの組み合わせ方がいまいち分かりません。3時間考え抜いた末にできた中途半端なコードになりますが載せますので、どのように組めば良いか御教授願います。
課題
int ageの値により以下を表示すること
5以下 無料
6-12歳 800円
13-22歳 1000円
それ以外 1500円
変数を用いて、条件式を終了した後にprintlnで料金を表示する
優待券をもっていたら100円引き
boolean yuutaiFlg
大人(それ以外)の女性の場合、水曜日であれば300円引き
boolean WedFlg
public class Main { public static void main(String[] args) { int age = 1; int WOMAN = 1; boolean yuutaiFlg; boolean WedFlg; WedFlg = (WOMAN == 1); String str; if (age <= 5){ str = "無料になります"; } else if (age >= 6 && age <= 12){ str = "800円になります"; } else if (age >= 13 && age <= 22){ str = "1000円になります"; } else if (WedFlg){ str = "1200円になります"; } else { str = "23以上の男性は1500円になります"; } System.out.println(str); } }
えっと、現状のコードでは「どのような場合」に「どう動くべき」ものが「実際にはどのようになっている」のでしょうか?
そこを言葉にするのがスタートラインです。
失礼しました。
5歳以下の場合、無料と表示
6歳~12歳の場合、800円と表示される
13~22歳の場合、1000円と表示される
優待券を持っていたら100円引き
それ以外(男性)の場合、1500円と表示される
それ以外(女性でかつ水曜日)の場合、300円引かれて1200円と表示される
5~22歳まではint ageの値を変えれば想定される表示が出るのですが、boolean型を用いて100円引きにする方法と23歳以上で女性かつ水曜日の場合1200円にするためのコードの書き方が分からない状況です。
↑のうち、できていないのは、どこですか?というのが、maisumakunさんの聞いてることです。
5歳以下の場合、無料と表示はできている。
xxxは、できている。
xxxについて、yyyと表示したいのに、zzzと表示されてしまう。
のような感じです。
申し訳ございません。
5歳以下の場合、無料と表示できている
6歳~12歳の場合、800円と表示できている
13~22歳の場合、1000円と表示できている
---以下ができない-----
優待券を持っていたら100円引き
それ以外(男性)の場合、1500円と表示される
それ以外(女性でかつ水曜日)の場合、300円引かれて1200円と表示される
5~22歳まではint ageの値を変えれば想定される表示が出るのですが、boolean型を用いて100円引きにする方法と23歳以上で女性かつ水曜日の場合1200円にするためのコードの書き方が分からない状況です。
お二方ありがとうございます。
「研修で」なら聞くべきは講師であって赤の他人ではないのでは。
回答2件
あなたの回答
tips
プレビュー