au PAY マーケット

Java (Bronze SE 7/8) 資格試験 Exercise16

Java (Bronze SE 7/8) 資格試験 Exercise16

練習問題1
1 class IfTest {
2  public static void main(String[ ] args) {
3   int x = 5;
4   int y = 7;
5
6   if( x > y )
7    System.out.println(“A “);
8    System.out.println(“B “);
9   else
10    System.out.println(“C “);
11    System.out.println(“D “);
12  }
13 }

01上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. A
B. A B
C. C
D. C D
E. コンパイルエラーが発生する

(答え):E

(解説):if文についての問題です。
●各選択肢の解説は、以下の通りです。

6行目では、if文を定義する際に { } を省略しています。{ } を省略した場合は次の1文がif文の処理として扱われます。

7行目では、if文の処理として扱われますが、else文はif文と組み合わせて使用する必要があるため、{ } を省略する場合には8行目の処理の前にelse文を定義する必要があります。

9行目でelse文を定義していますが、6行目のif文は7行目で完結しており、9行目のelse文とは対応しないため、コンパイルエラーが発生します。

したがって、選択肢Eが正解です。


練習問題2
1 public class IfTest {
2  public static void main(String[ ] args) {
3   boolean flag;
4   // insert code here
5    System.out.println(“true”);
6   } else {
7    System.out.println(“false”);
8   }
9  }
10 }

02上記のコードを確認してください。
4行目にどのコードを挿入すれば、コンパイルが成功しますか。一つ選択してください。 A. if (flag === “true”)) {
B. if (flag === true)) {
C. if (flag == “true”) {
D. if (flag = true) {

(答え):D

(解説):if文についての問題です。
●各選択肢の解説は、以下の通りです。

選択肢A:
 ===という演算子は存在しないため、コンパイルエラーが発生します。また、boolean型の値であるtrueはダブルクォーテーションで囲む必要はありません。囲んでしまうとString型のデータとなるため、比較式として成立しません。したがって、不正解です。

選択肢B:
 選択肢Aと同様に、===という演算子は存在しないため、コンパイルエラーが発生します。したがって、不正解です。

選択肢C:
 ==演算子を使用して比較していますが、trueをダブルクォーテーションで囲んでいるため、コンパイルエラーが発生します。したがって、不正解です。

選択肢D:
 =演算子を利用してboolean型の値trueを変数flagに代入しています。If文の条件判定に、変数flagの保持している値trueが使用されるため、コンパイルや実行が可能です。したがって、正解です。


練習問題3
1 public class IfTest {
2  public static void main(String[ ] args) {
3   int num1 = 6;
4   int num2 = 3;
5   int num3 = 2;
6   if (num1 = 5) num3++;
7   if (num2 >= 5) num3++;
8   if (num1 < num2 and num1 > 0) num3++;
9  }
10 }

03上記のコードを確認してください。
このコードをコンパイル、および実行すると、どのような結果になりますか。1つ選択してください。 A. コンパイルに成功する
B. 6行目でコンパイルエラーが発生する
C. 7行目でコンパイルエラーが発生する
D. 8行目でコンパイルエラーが発生する

(答え):D

(解説):if文についての問題です。
●解説は以下の通りです。

  6行目と8行目は、正しいコードではありません。

6行目では、if文の条件式としてnum1 = 5という式を記述していますが、num1 = 5は代入式になります。条件式にはboolean型の値を取得する式を記述する必要があるため、コンパイルエラーになります。

8行目では、言語仕様に存在しない文法としてandというキーワードを使用した比較式を記述しています。この状態でコンパイルを行うと8行目でJavaの文法として成り立たないことによるコンパイルエラーが先に検知されます。

6行目で発生するコンパイルエラーは、文法自体はJavaの文法に沿っており、条件式が原因でエラーになりますが、Javaの文法として成り立たない8行目のコードが優先的にコンパイルエラーとして検知されます。

したがって、選択肢Dが正解です。





恭喜你今天又向前迈进了一小步,明天继续加油哦!

如果你觉得这个网站对学习有帮助,希望你也能分享给身边的好友!

前の記事

N2必备词汇#0011

次の記事

例文-Lesson73
ショップチャンネル