Java (Bronze SE 7/8) 資格試験 Exercise22
Java (Bronze SE 7/8) 資格試験 Exercise22
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
(答え):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が正解です。
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
(答え):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が正解です。
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
(答え):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文の構文は、以下の通りです。
do {
//処理
} while(条件式);
Java(Bronze SE 7/8)資格試験 Exercise21

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

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