au PAY マーケット

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

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

練習問題1
1 class ForTest {
2  public static void main(String[ ] args) {
3   for(int i = 1; i % 2 == 1; i += 2) {
4    System.out.println(i);
5   }
6  }
7 }

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

(答え):E

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

3行目のfor文は、カウンタ変数iが1で初期化され、条件式は i % 2 == 1です。この条件式の意味は「変数iを2で割った余りが1だとtrue」です。つめり、変数iが奇数の場合にfor文内の処理を繰り返し実行します。

for文内の処理実行後は、i += 2 によって1回の処理を行うごとに変数iは2加算されます。

1回目のループで変数iが1で奇数となり、その後も変数iが2加算されるため変数iは奇数のままです。条件式がfalseになることはないため、for文の処理は無限に繰り返し実行されます。

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


練習問題2
1 class DoWhileTest {
2  public static void main(String[ ] args) {
3   int num = 0;
4   do {
5    switch(num) {
6     case 0 :
7      System.out.println(“0”);
8      num++;
9      break;
10     case 1 :
11      System.out.println(“1”);
12      num++;
13      break;
14     default :
15      System.out.println(“2”);
16      num++;
17      continue;
18    }
19   } while(num < 5);
20  }
21 }

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

(答え):C

(解説):do-while文についての問題です。
●各選択肢の解説は、以下の通りです。
do-while文は、while文やfor文と同様に繰り返し処理を実行するために使用されます。while文と同様に一つの条件式をもちますが、条件判定を行う前に繰り返し処理を行います。そのため、一回目のループの条件判定の結果がfalseの場合でも最低1回は処理を実行します。
do-while文の構文は、以下の通りです。


 do {
    //処理
 } while(条件式);

3行目でint型の変数numを0で初期化し、doブロック内5行目で、switch文の定数式として変数numを使用しています。
6行目のcase文と一致するため7行目で「0」を出力し、8行目で変数numが1加算され1となります。9行目のbreak文によって、switch文の処理を抜け、19行目の条件式の判定を行います。9行目のbreakは、switchの処理を抜けるためのもので、ループから抜けるものではありません。条件式は1 < 5の判定を行い、trueとなるため2回目のループの処理を実行します。
2回目のループでは、変数numは1のため10行目のcase文と一致するため11行目で「1」を出力し、12行目で変数numが1加算され2となります。13行目のbreak文を実行するとswitch文の処理を終了し、19行目の条件式の判定を行います。条件式は2 < 5の判定を行い、trueとなるため3回目のループの処理を実行します。
3回目以降のループでは、定数式と一致するcase文が存在しないため14行目のdefault文に処理が移ります。15行目で「2」を出力し、16行目で変数numを1加算した後、17行目のcontinue文でループを続行します。
合計五回の繰り返し処理を実行し、「01222」と出力されます。
したがって、選択肢Cが正解です。


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

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

(答え):A

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

  6行目のdo-while文の条件式++num – num++ < 0は、変数numが0未満であればtrueという意味を表します。
3行目で変数numは1で初期化されています。
6行目の条件式では、まず++numにより1加算されるため、条件式内一つ目の変数numは2になります。
num++は全体を評価してから1加算するので、条件式内二つ目の変数numは2のままです。
++num – num++は2 – 2で0になり、while文の条件を満たさないためループ処理は終了します。
do-while文の場合、6行目の条件判定を行う前doブロック内のループ処理が実行されるため、条件式の判定結果がfalseの場合でも少なくとも一度は処理が実行されます。
したがって、選択肢Aが正解です。



 do-while文は、while文やfor文と同様に繰り返し処理を実行するために使用されます。while文と同様に一つの条件式をもちますが、条件判定を行う前に繰り返し処理を行います。そのため、一回目のループの条件判定の結果がfalseの場合でも最低1回は処理を実行します。
 do-while文の構文は、以下の通りです。
 do {
    //処理
 } while(条件式);




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

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

前の記事

N2必备词汇#0017

次の記事

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