練習問題
6.9 練習問題
本章で習った内容を元に練習問題を解いて下さい。
なお、練習問題のソースコードを作成する場合は、以下の条件で作成して下さい。
ソース・フォルダー :myproj_intro/src
パッケージ :jp.co.f1.intro.ch6exercise
問1 次の設問①~⑤ついて○か×で答えなさい。
① プログラムの処理を特定の条件で分岐させるには、if 文が利用できる。
② if 文の次には、else if 文を繋げることができる。
③ if または else ブロック内には、if 文を使用してはいけないというルールがある。
④ if 文の条件式に論理演算子を使用することで、複数の条件を設定できる。
⑤ 条件分岐をさせる文法は if 文以外には存在しない。
問2 次の設問①~⑥について、if 文の条件式に記述する場合どうなるか答えなさい。
① 変数xは 9 以下
② 変数xは 10 より大きい
③ 変数xは 5 と等しい
④ 変数xは 0 以上
⑤ 変数xは 5 ではない
⑥ 変数xは-1 より小さい
例 : 変数 a は 3 と等しい
if(a == 3)
問3 次の①~④の初期値について、if 文の条件式を満たすか満たさないか答えなさい。
初期値
① x = -1 y = -2
② x = 2 y = 1
③ x = 1 y = 1
④ x = 1 y = 2
if 構文
if ( x < y ) {
System.out.println(“条件を満たしています。”);
} else {
System.out.println(“条件を満たしていません。”);
}
問4 次の if-else if-else 文の a,b,c に入る、正しい条件式の組み合わせを○か×で答えなさい。
条件式 ※numはint型の変数
① a. num < 10 b. num < 30 c. num < 50
② a. num <= 9 b. num <= 29 c. num <= 49
③ a. num < 11 b. num < 31 c. num < 51
④ a. num <= 10 b. num <= 30 c. num <= 50
⑤ a. num < 9 b. num < 29 c. num < 49
if-else if-else 構文
if ( a ) {
System.out.println(“数値は 10 以下です。”);
} else if ( b ) {
System.out.println(“数値は 30 以下です。”);
} else if ( c ) {
System.out.println(“数値は 50 以下です。”);
} else {
System.out.println(“数値は 51 以上です。”);
}
問5 次の実行結果になるプログラム Practice0601.java を作成しなさい。
実行結果
プログラム仕様
キーボードより数値を入力してもらい、その数値が偶数か奇数か判定します。
その結果で画面に出力するメッセージを変えます。
作成ヒント
・ キーボード入力は前章で学習した Scanner クラスを利用します。
例)
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
・ 奇・偶数判定は if 文と演算子%を利用します。入力数値を 2 で割った余りが 0 なら偶数と判断出来ます。
・ 出力メッセージは入力数値と文字連結を行います。
問6 次の設問①~⑩について論理演算子を使って、if 構文に記述する条件式を答えなさい。
設問
① 変数 num は 0 以上かつ 9 以下
② 変数 num は 0 より小さいまたは 9 より大きい
③ 変数 num1 は 5 と等しいかつ変数 num2 は 999 と等しくない
④ 変数 char1 は’y’と等しいまたは変数 str1 は”yes”と等しい
⑤ 変数 month は 3 以上かつ 5 以下
⑥ 変数 month は 6 以上かつ 8 以下
⑦ 変数 month は 9 以上かつ 11 以下
⑧ 変数 month は 12 と等しいまたは 0 より大きいかつ 2 以下
⑨ 変数 i と w が等しくないかつ変数 num1 と num2 が等しい
⑩ 変数 a と x が等しいまたは変数bと y が等しいまたは変数 c と z が等しい
問7 次に示す Practice0602.java のプログラムを「switch 構文」に書き換えた Practice0603.java を作成しなさい。
➢ Practice0602.java
package jp.co.f1.intro.ch6exercise; import java.util.Scanner; public class Practice0602 { public static void main(String[] args) { Scanner sin = new Scanner(System.in); System.out.print("成績を入力(1~5)-->"); int grade = sin.nextInt(); if(grade == 1){ System.out.println("もっと頑張りましょう!"); }else if(grade == 2){ System.out.println("もう少し努力が必要です。"); }else if(grade == 3){ System.out.println("さらに良い成績を目指しましょう。"); }else if(grade == 4){ System.out.println("良い成績です。"); }else if(grade == 5){ System.out.println("最高の成績です。"); }else { System.out.println("1~5 の数値を入力して下さい!"); } } }
問8 変数 a の値が 3 であった場合、次の演算の中で結果が false を返すものはどれか、選びなさい。
① a != 5
② ( a > 2 ) && ( a < 6 )
③ ( ( a != 5 ) || ( a <= 2 ) ) && ( ( a > 2 ) && ( a < 4 ) )
④ ( a > 2 ) && ( ( a > 6 ) || ( a < 1) )