Java (Bronze SE 7/8) 資格試験 Exercise23
Java (Bronze SE 7/8) 資格試験 Exercise23
1 | class DoWhileTest { |
---|---|
2 | public static void main(String[ ] args) { |
3 | do { |
4 | int num = 0; |
5 | System.out.println(num); |
6 | num++; |
7 | } while(num < 5); |
8 | } |
9 | } |
01
(答え):F
(解説):do-while文についての問題です。
●各選択肢の解説は、以下の通りです。
3行目のdoブロック内のループ処理を実行してから、7行目の条件式で判定を行います。しかし、条件式で使用されている変数numは3行目からのdoブロック内で定義された変数です。4行目で宣言した変数numの有効範囲はdoブロック内となるため、7行目の条件式では使用できません。
したがって、7行目でコンパイルエラーが発生するため、選択肢Fが正解です。
1 | class DoWhileTest { |
---|---|
2 | public static void main(String[ ] args) { |
3 | int num = 10; |
4 | do { |
5 | if(num % 2 == 0) |
6 | num++; |
7 | System.out.println(num + ” “); |
8 | } while(num < 10); |
9 | } |
10 | } |
02
(答え):A
(解説):do-while文についての問題です。
●各選択肢の解説は、以下の通りです。
3行目で変数numを10で初期化しています。
4行目のdoブロック内5行目のif文の条件式に変数numを使用しています。条件式はnum % 2 == 0と指定されているため、変数numが偶数であればtrueとなり、ifブロック内の処理が実行されます。10は偶数のため、条件式はtrueとなり、6行目で変数numが1加算され11となります。
7行目で「11」が出力された後、8行目の条件式num < 10の判定を行います。11 < 10となるため結果はfalseとなり、ブロックが終了します。
したがって、選択肢Aが正解です。
1 | class Nest { |
---|---|
2 | public static void main(String[ ] args) { |
3 | String[ ] var = {“x”, “y”, “z”}; |
4 | for(int i = 0; i < var.length; ++i) |
5 | for(String s : var) |
6 | System.out.println(s); |
7 | } |
8 | } |
03
(答え):C
(解説):for文のネストについての問題です。
●解説は以下の通りです。
4行目のfor文の内側に、5行目で拡張for文が定義されています。この状態をループのネスト、ループの入れ子、二重ループなどと呼びます。
また、ループ処理が一行しかない場合には{ }を省略可能です。
外側のループが一回処理される間に内側のループ処理が実行されます。4行目のfor文はカウンタ変数iが3より小さい間、三回のループ処理を実行します。このループ処理が一回処理される際に、5行目の拡張for文が実行されます。
5行目は拡張for文を使用して、左辺で宣言した変数sに配列varの全要素が添え字0から順番に代入されます。三回のループ処理を実行することで、6行目の出力処理が三回繰り返され、配列varの全要素「xyz」が出力されます。
ここまでの処理を外側のfor文で指定されている三回分繰り返しますので、「xyz」が三回出力されます。実行結果としては、「xyzxyzxyz」と出力されます。
したがって、選択肢Cが正解です。
Java(Bronze SE 7/8)資格試験 Exercise22

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

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