au PAY マーケット

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

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

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

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

(答え):D

(解説):while文についての問題です。
 while文は繰り返し処理を実行するために使用されます。
●各選択肢の解説は、以下の通りです。

3行目では、int型の配列numを三つの要素で初期化しています。

4行目では、int型の変数iを0で初期化しています。

5行目では、while文の条件式をi<=num.lengthと設定しています。num.lengthは3の値を返すため、0<=3が一回目のループの条件式となり、true判定となります。

一回目のループでは、6行目のnum[0]により0が出力されます。

一回目のループ終了後、二度目の条件判定を行いますが、変数iの値は変化していないため、判定は再びtrueとなります。さらに何度ループしても変数iはfalseに変化することがないため1が無限に出力される、無限ループとなります。

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


練習問題2
1 class WhileTest {
2  public static void main(String[ ] args) {
3   int num = 0;
4   while(true) {
5    System.out.println(num);
6    num++;
7    if(num == 5) {
8     break;
9    }
10   }
11  }
12 }

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

(答え):A

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

4行目のwhile文は条件式にboolean型のtrueを直接指定しているため、無限ループになります。

一回目のループでは、5行目で変数numを出力後、6行目で変数numに1加算しています。

7行目のif文では、変数numが5の時に8行目のbreak文でループが終了となるため、変数numが0~4の間ループが実行されます。

したがって、実行結果は「01234」と出力されるため、選択肢Aが正解です。


練習問題3
1 class WhileTest {
2  public static void main(String[ ] agrs) {
3   boolean x = true;
4   while(x) {
5    x = false;
6    if(!x) {
7     System.out.println(“A”);
8     x = true;
9     continue;
10    }
11    System.out.println(“B”);
12    break;
13   }
14  }
15 }

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

(答え):D

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

  3行目では、変数xをtrueで初期化しているため、4行目のwhile文はtrue判定となります。

一回目のループでは、以下の処理を実行します。

①5行目 変数xにfalseを代入
②6行目 if文の条件判定はtrueとなり、7行目で「A」を出力
③8行目 変数xにtrueを代入
④9行目 continue文でループの先頭に制御が移る

9行目の処理が終了した時点で、変数xはtrueを保持します。

continue文は以降の処理をスキップし、ループの先頭である4行目に制御が移ります。

2回目の条件判定では、変数xはtrueのままであるため、true判定となり、上記①~④の処理を繰り返し実行します。

さらに何回ループしても11~12行目に制御が移ることはありません。

したがって、「A」が無限に出力される無限ループとなるため、選択肢Dが正解です。



 while文は一つの条件式を持ち、繰り返し処理に入る前に判定を行い、条件式の判定がtrueである限り、繰り返し処理を実行します。
  ※ while文の構文は次の通りです。   
while( 条件式 ) {
   // 処理
 }

 



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

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

前の記事

N2必备词汇#0014

次の記事

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