ifの練習問題[解答及び解説]

記事上広告

ifの練習問題

if(3-3まで)の問題記事の解答及び解説記事です。

プログラムの解答はあくまでも一例です。問題によっては違う記述方法もあります。

【Java】if 練習問題 サンプルプログラム

以下のプログラム内にはコメントで指示がありますので、コメントの下にプログラミングを行ってください(実行結果も参考にプログラミングしてください)。表示や演算には作成した変数を利用して下さい。workフォルダ内に「Exam08.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

プログラム 解答例

実行結果

c:\work>javac Exam08.java

c:\work>java Exam08
田中さんの国語の点数は85点です。
田中さんの数学の点数は66点です。
田中さんの平均点は75.5点です。
合格です。

if 練習問題の解説

ポイント1 平均値の算出時の計算式

2で割り算を行うと、int同士の計算となり結果もintとなってしまうため、2.0のdouble型で計算を行っています。

ポイント2 条件分岐

平均点はaverage_scoreに保存されており、比較演算子でaverage_scoreが65以上かどうかをみています。65未満はelse ifで条件指定しても良いですが、今回はelseで代用しています。

【Java】if 練習問題の追加指示 サンプルプログラム

Exam08.java」を以下の指示のように編集して下さい。
保存後、コンパイルおよび実行を行ってください。

指示1:平均点によって表示を変更するif文を以下のように変更して下さい。

条件 表示内容
平均点が80点以上 高得点!おめでとう。
平均点が80-65点の範囲
(80は含まないが、65は含む)
もう少しで高得点。
平均点が65-35点の範囲
(65は含まないが、35は含む)
もう少し頑張りましょう。
平均点が35点未満 追試です。

指示2:国語と数学の平均点を任意で変更し、全ての結果が表示されるように確認して下さい。

プログラム 解答例

実行結果

c:\work>javac Exam08.java

c:\work>java Exam08
田中さんの国語の点数は80点です。
田中さんの数学の点数は80点です。
田中さんの平均点は80.0点です。
高得点!おめでとう。

c:\work>javac Exam08.java

C:\work>java Exam08
田中さんの国語の点数は60点です。
田中さんの数学の点数は69点です。
田中さんの平均点は64.5点です。
もう少し頑張りましょう。

if 追加指示の解説

ポイント 条件分岐

if-else if-elseの条件分岐は複数ある場合は、上から下に条件をみていきます。今回は以下のような順序で条件を確認することになります。()内は表示される文字列です。

  1. average_score >= 80(高得点)
  2. average_score >= 65(もう少しで高得点)
  3. average_score >= 35(頑張りましょう)
  4. 上記の条件以外(追試です)

if-else if-elseの条件分岐は条件に合致しない場合に次の条件を確認します。例えば、「average_score >= 65」の条件に合致しない場合、「average_score >= 35」以降の条件を確認します。以降の条件も上の条件に当てはまらない場合に実行されます。

②の部分である「average_score >= 65」の条件だと80や90も含まれますが、average_scoreが80に満たない場合に条件を確認することになる為、average_scoreは80未満かつ65以上(上図の色部分)となります。

同じように、③の部分である「average_score >= 35」の条件だと70や90も含まれますが、average_scoreが65に満たない場合に条件を確認することになる為、average_scoreは65未満かつ35以上(上図のピンク部分)となります。

上記の条件全てに当てはまらない場合に④の部分であるelseが実行される為、elseは35未満(上記図の橙色部分)となります。

【Java】if 練習問題2 サンプルプログラム

2018-02-14 問題追加

以下のプログラム内にはコメントで指示がありますので、コメントの下にプログラミングを行ってください(実行結果も参考にプログラミングしてください)。表示や演算には作成した変数を利用して下さい。workフォルダ内に「Exam0801.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

プログラム 解答例

実行結果

c:\work>javac Exam0801.java

c:\work>java Exam0801
投入金額は160円です
ドリンクが購入できました【お釣りなし】

c:\work>javac Exam0801.java

c:\work>java Exam0801
投入金額は330円です
ドリンクが購入できました【お釣りあり】

c:\work>javac Exam0801.java

c:\work>java Exam0801
投入金額は90円です
金額が足りません

※2回目のコンパイル及び実行は、entry_amountを330に変更しています
※3回目のコンパイル及び実行は、entry_amountを90に変更しています

if 練習問題2の解説

ポイント 条件分岐

「entry_amount == 160」の条件は、投入金額が160と等しい場合となっており、ドリンクが購入できます。

次に、「entry_amount == 160」の条件は、投入金額が160よりも大きい場合は購入できてかつお釣りがあります。

上の2つの条件に当てはまらない場合は、投入金額が160よりも小さいとなるので、ドリンクは購入できないことになります。

【Java】if 練習問題2の追加指示 サンプルプログラム

2018-02-14 問題追加

Exam0801.java」を以下の指示のように編集して下さい。
保存後、コンパイルおよび実行を行ってください。

指示1:お釣りがあるときは、お釣りの金額も表示させてください。

プログラム 解答例

実行結果

c:\work>javac Exam0801.java

c:\work>java Exam0801
投入金額は330円です
ドリンクが購入できました【お釣りあり】
お釣りは170円です

if 練習問題2(追加指示)の解説

ポイント お釣りの表示

お釣りは投入金額から代金を引いて表示しています。

指示2:お釣りがあるときは、金額表示とともに硬貨の種類と枚数も表示してください。

プログラム 解答例

実行結果

c:\work>javac Exam0801.java

c:\work>java Exam0801
投入金額は330円です
ドリンクが購入できました【お釣りあり】
お釣りは170円です
500円硬貨:0枚
100円硬貨:1枚
50円硬貨:1枚
10円硬貨:2枚

c:\work>javac Exam0801.java

c:\work>java Exam0801
投入金額は710円です
ドリンクが購入できました【お釣りあり】
お釣りは550円です
500円硬貨:1枚
100円硬貨:0枚
50円硬貨:1枚
10円硬貨:0枚

if 練習問題2(追加指示2)の解説

硬貨の枚数は、お釣りの保存されている変数を利用して以下の計算を行います。

【手順1】
投入金額を500で割ると、500円硬貨の枚数が分かります。その枚数を表示します。

例1(投入金額が650円の場合)
650を500で割ると通常1.3ですが、intの計算では小数が切り捨てられるため、1となります。
例2(投入金額が350円の場合)
350を500で割ると通常0.7ですが、intの計算では小数が切り捨てられるため、0となります。

【手順2】
表示後、変数の数値を500で割った”余り”を求めます。その余りを変数に再度代入します。余りの数値は手順3以降に利用するためのもの、表示には利用しません。

例1(投入金額が650円の場合)
650を500で割った余りは150となり、500円硬貨が省かれた数値となります。計算後は150が変数に代入されている。
例2(投入金額が350円の場合)
350を500の余りは350となります(500円以下なので)。計算後は350が変数に代入されている。

【手順3以降】
手順2での変数の数値をもとに、手順1と2を100円硬貨、50円硬貨、10円硬貨の順で行います。

【Java】ifと文字列比較 練習問題 サンプルプログラム

以下のプログラム内にはコメントで指示がありますので、コメントの下にプログラミングを行ってください(実行結果も参考にプログラミングしてください)。workフォルダ内に「Exam09.java」で保存してください。
保存後、コンパイルおよび実行を行ってください。

実行結果

c:\work>javac Exam09.java

c:\work>java Exam09
ユーザー名かパスワードが間違っています

ifと文字列比較 練習問題の解説

ポイント 文字列比較とAND演算

「user_name.equals(“admin”)」という条件と「password.equals(“Javaru”)」という条件の両方があっている場合を記述するにはAND演算を利用します。また、elseはその逆となり、片方でも間違っている場合となるため、片方でも間違っている場合の条件を作成する必要はありません。

参加 ブログランキング

記事頑張って書いたかもねー?と思う方は下を押してもらえるといいかなーなんて
にほんブログ村 IT技術ブログへ
にほんブログ村


Javaランキング

目次へのアクセス
スポンサーリンク
レクタングル

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル