au PAY マーケット

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

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

練習問題1
1 class DoWhileTest {
2  public static void main(String[ ] args) {
3   do {
4    int num = 0;
5    System.out.println(num);
6    num++;
7   } while(num < 5);
8  }
9 }

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

(答え):F

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

3行目のdoブロック内のループ処理を実行してから、7行目の条件式で判定を行います。しかし、条件式で使用されている変数numは3行目からのdoブロック内で定義された変数です。4行目で宣言した変数numの有効範囲はdoブロック内となるため、7行目の条件式では使用できません。

したがって、7行目でコンパイルエラーが発生するため、選択肢Fが正解です。


練習問題2
1 class DoWhileTest {
2  public static void main(String[ ] args) {
3   int num = 10;
4   do {
5    if(num % 2 == 0)
6     num++;
7    System.out.println(num + ” “);
8   } while(num < 10);
9  }
10 }

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

(答え):A

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

3行目で変数numを10で初期化しています。
4行目のdoブロック内5行目のif文の条件式に変数numを使用しています。条件式はnum % 2 == 0と指定されているため、変数numが偶数であればtrueとなり、ifブロック内の処理が実行されます。10は偶数のため、条件式はtrueとなり、6行目で変数numが1加算され11となります。
7行目で「11」が出力された後、8行目の条件式num < 10の判定を行います。11 < 10となるため結果はfalseとなり、ブロックが終了します。
したがって、選択肢Aが正解です。


練習問題3
1 class Nest {
2  public static void main(String[ ] args) {
3   String[ ] var = {“x”, “y”, “z”};
4   for(int i = 0; i < var.length; ++i)
5    for(String s : var)
6     System.out.println(s);
7  }
8 }

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

(答え):C

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

  4行目のfor文の内側に、5行目で拡張for文が定義されています。この状態をループのネスト、ループの入れ子、二重ループなどと呼びます。
また、ループ処理が一行しかない場合には{ }省略可能です。
外側のループが一回処理される間に内側のループ処理が実行されます。4行目のfor文はカウンタ変数iが3より小さい間、三回のループ処理を実行します。このループ処理が一回処理される際に、5行目の拡張for文が実行されます。
5行目は拡張for文を使用して、左辺で宣言した変数sに配列varの全要素が添え字0から順番に代入されます。三回のループ処理を実行することで、6行目の出力処理が三回繰り返され、配列varの全要素「xyz」が出力されます。
ここまでの処理を外側のfor文で指定されている三回分繰り返しますので、「xyz」が三回出力されます。実行結果としては、「xyzxyzxyz」と出力されます。
したがって、選択肢Cが正解です。



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

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

前の記事

N2必备词汇#0018

次の記事

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