au PAY マーケット

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

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

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

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

(答え):A

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

3行目では、変数xをfalseで初期化しています。

4行目では、if条件式にx=trueとしていますが、=演算子は、「比較」ではなく「代入」を表します。条件式としては正しいため、コンパイルエラーは発生しません。

5行目の条件判定では、変数xにtrueが代入されているため、true判定となります。

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

 ・6行目 「”true”」を出力
 ・7行目 変数xにfalseを代入

7行目の処理が終了後、5行目へ制御が移ります。

5行目では、二度目の条件判定が行われますが、変数xは7行目でfalseが代入されるため、false判定となります。これによりwhile文が終了し、続けてif文も終了するため、プログラムは終了します。

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


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

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

(答え):C

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

3行目では、変数numを0で初期化しています。

4行目のwhile文の条件式である++num < 3は、変数numに1を加算した後で左辺と右辺を比較するという意味になります。
そのため、一回目のループでは、条件式が1 < 3のためtrue判定になり、以下の処理が実行されます。
 ・5行目 「+」を出力
 ・6行目 if文の条件式が1 == 2のためfalse判定
6行目のfalse判定によりifブロックを終了し、4行目の条件判定に移ります。
二回目のループでは、条件式が2 < 3のためtrue判定になり、以下の処理が実行されます。
 ・5行目 「+」を出力
 ・6行目 if文の条件式が2 == 2のためtrue判定となり7行目へ移行
 ・7行目 「-」を出力
7行目の処理を実行後、ifブロックを終了し4行目の条件判定に移ります。
三回目のループでは、条件式が3 < 3となりfalse判定となり、whileループが終了します。
したがって、実行結果は「+ + -」と出力されるため、選択肢Cが正解です。


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

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

(答え):E
(解説):for文についての問題です。
●解説は以下の通りです。
  3行目のfor文で使用されている条件式i < i++では、式全体を評価した後でインクリメントを行います。つまり、最初の条件判定で3 < 3の評価を行いfalse判定となります。そのため{ }内の処理は行われず、何も出力されずに処理が終了します。
したがって、選択肢Eが正解です。



 ※for文は繰り返し処理を行うために使用します。
 for文の構文は、以下の通りです。
  for(式1; 条件式; 式2) {
    // 処理
  }
  ●for文は三つの式を持ちます。
 ・式1
 繰り返し処理をカウントするための変数(カウンタ変数)の宣言
 ・条件式
 繰り返し処理の条件をboolean式で記述
 ・式2
 カウンタ変数を増減する式を宣言
  ●for文の処理の流れは以下の通りです。
 ①繰り返し処理に入る前に「式1」によりカウンタ変数の初期化を行う
 ②「条件式」を判定し、評価がtrueの場合は{ }内の処理を行い、falseの場合はfor文から抜ける
 ③{ }内の処理を実行後、「式2」によりカウンタ変数の更新が実行され、再び「条件式」の判定を行い、条件を満たす限り繰り返し処理の実行と、カウンタ変数の更新が行われる。



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

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

前の記事

N2必备词汇#0015

次の記事

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