以下に「条件分岐」について、Java Bronze試験を想定した問題と解答解説を記載します。
問題1: if文の基本
以下のコードを実行した場合、出力される結果を選びなさい。
package chap04;
public class Example {
public static void main(String[] args) {
int age = 19;
if (age >= 20) {
System.out.println("酒を飲む");
}
System.out.println("煙草も吸う");
}
}
選択肢:
- 酒を飲む
- 酒を飲む
煙草も吸う - 煙草も吸う
- 何も出力されない
解答と解説
解答: 3
解答解説:
- 選択肢1: 誤りです。このコードでは
age >= 20がfalseなので "酒を飲む" は出力されません。 - 選択肢2: 誤りです。同上。条件が
falseのため "酒を飲む" は出力されませんが、"煙草も吸う" はif文外にあるため出力されます。 - 選択肢3: 正解。"煙草も吸う" は
if文に含まれないため常に実行されます。 - 選択肢4: 誤りです。"煙草も吸う" は必ず出力されます。
問題2: if-else文の構造
以下のコードを実行した場合、出力される結果を選びなさい。
package chap04;
public class Example {
public static void main(String[] args) {
int age = 20;
if (age >= 20) {
System.out.println("酒を飲む");
} else {
System.out.println("ジュースを飲む");
}
}
}
選択肢:
- 酒を飲む
- ジュースを飲む
- 何も出力されない
- 実行時エラーが発生する
解答と解説
解答: 1
解答解説:
- 選択肢1: 正解。
age >= 20がtrueであるため、"酒を飲む" が出力されます。 - 選択肢2: 誤りです。
else部分はage >= 20がfalseの場合に実行されますが、今回はtrueなので実行されません。 - 選択肢3: 誤りです。必ずどちらかのブロックが実行されます。
- 選択肢4: 誤りです。このコードに構文エラーや実行時エラーはありません。
問題3: 関係演算子
次のコードを実行した場合、正しい出力を選びなさい。
package chap04;
public class Example {
public static void main(String[] args) {
int a = 15;
System.out.println(a >= 20);
System.out.println(a < 20);
}
}
選択肢:
- true
true - false
true - true
false - false
false
解答と解説
解答: 2
解答解説:
- 選択肢1: 誤りです。
a >= 20はfalseのため、最初の出力はfalseです。 - 選択肢2: 正解。
a >= 20はfalse、a < 20はtrueです。したがって出力はfalseとtrueになります。 - 選択肢3: 誤りです。同上。
- 選択肢4: 誤りです。
a < 20はtrueですので、2番目の出力が誤っています。
問題4: 論理演算子
以下のコードを実行した場合、出力される結果を選びなさい。
package chap04;
public class Example {
public static void main(String[] args) {
int english = 85;
int math = 75;
if (english >= 80 && math >= 80) {
System.out.println("S");
} else if (english >= 80 || math >= 80) {
System.out.println("A");
} else {
System.out.println("B");
}
}
}
選択肢:
- S
- A
- B
- C
解答と解説
解答: 2
解答解説:
- 選択肢1: 誤りです。
english >= 80はtrueですが、math >= 80はfalseなので、Sは出力されません。 - 選択肢2: 正解。
english >= 80 || math >= 80はtrueなので "A" が出力されます。 - 選択肢3: 誤りです。
english >= 80 || math >= 80の条件がtrueのため、Bの出力にはなりません。 - 選択肢4: 誤りです。同上。"C" はどちらの条件にも該当しない場合に出力されますが、今回は該当します。
問題5: 三項演算子
以下のコードを実行した場合、出力される結果を選びなさい。
package chap04;
public class Example {
public static void main(String[] args) {
int score = 90;
String grade = score >= 80 ? "A" : "B";
System.out.println(grade);
}
}
選択肢:
- A
- B
- C
- 実行時エラーが発生する
解答と解説
解答: 1
解答解説:
- 選択肢1: 正解。
score >= 80はtrueのため、三項演算子の真の部分"A"が評価されます。 - 選択肢2: 誤りです。
score >= 80がtrueなので、"B"は評価されません。 - 選択肢3: 誤りです。三項演算子の条件に
"C"はありません。 - 選択肢4: 誤りです。このコードには構文エラーや実行時エラーはありません。