au PAY マーケット

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

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

練習問題1
1 class NestTest {
2  public static void main(String[ ] args) {
3   for(int i = 0; i < 3; i++) {
4    for(int j = 0; j < 3; j++) {
5     if(j == 1) break;
6     System.out.println((i + j) + ” : “);
7    }
8   }
9  }
10 }

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

(答え):B

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

3行目、4行目のfor文はどちらも三回ずつループする条件を定義しています。

ただし、5行目で内側のループ文のカウンタ変数jが1の場合、ループを終了させるbreakを実行します。

5行目で実行されるbreak文は、あくまでも「内側のループ」を終了させます。つまり、外側のループ文は三回実行され、内側のループ文の二回目で終了することになります。

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


練習問題2
1 class Nest {
2  public static void main(String[ ] args) {
3   int[ ] num1 = {1, 2, 3};
4   int[ ] num2 = {4, 5, 6};
5   for(int i = 0; i < num1.length; i++) {
6    System.out.println(num1[i] + ” “);
7    for(int j = 0; j < num2.length; j++)
8     System.out.println(num2[j] + ” “);
9   }
10  }
11 }

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

(答え):B

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

5行目のfor文の処理に続いて7行目でもfor文がネストされています。
5行目の外側のfor文はカウンタ変数iが3よりも小さい間、三回ループ処理を実行します。
7行目の内側のfor文はカウンタ変数jが3よりも小さい間、三回ループ処理を実行します。
一回目のループでは、6行目でnum1[0]に格納されている「1」が出力された後、7行目の内側のループが処理されます。
7行目のfor文では三回のループ処理でnum2[0]からnum2[2]の要素を出力します。8行目の処理を三回繰り返すことで「4 5 6」を出力します。
二回目のループでは、6行目でnum1[1]に格納されている「2」が出力された後、7行目の内側のループが処理されます。7行目のfor文で三回のループ処理でnum2[0]からnum2[2]の要素を出力します。8行目の処理を三回繰り返すことで再び「4 5 6」を出力します。
三回目のループでは、6行目でnum1[2]に格納されている「3」が出力された後、7行目の内側のループが処理されます。7行目のfor文んでは、三回のループ処理でnum2[0]からnum2[2]の要素を出力します。8行目の処理を三回繰り返すことで再び「4 5 6」を出力します。
四回目のループでは、条件判定がfalseとなるため、ループ処理は終了します。実行結果は、「1 4 5 6 2 4 5 6 3 4 5 6」と出力されます。
したがって、選択肢Bが正解です。


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

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

(答え):B

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

  6行目のfor文の最後に「;」がついていることにより、6行目のループは処理のないループ文になり、変数jの値を繰り返しインクリメントしています。変数jが3のときにループを終了し7行目に処理が移ります。
7行目では、ループの処理ではなく「3」と出力され、一回目のループが終了します。
4行目のループ処理は変数iが0から2まで変化するため、5~7行目の処理が合計三回実行されます。一回目のループで「03」、二回目のループで「13」、三回目のループで「23」と出力されます。
したがって、実行結果は「031323」と出力されるため、選択肢Bが正解です。
for文の最後に「;」をつけてしまうのはよくある間違いです。
※参考
6行目の最後に「;」をつけなかった場合の出力は「001210122012」となります。




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

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

前の記事

我爱背单词#0034

次の記事

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