IT転職・プログラミングスクール

必ず出るぞ!while文【Java Silver 例題】

Java Silver 例題

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。

今回は、while文についてです。

 

ループ処理で誰もが学ぶwhile文。

Java Silverでは必ず出題される問題です。

基本的な構文なので、なかなか複雑なプログラムとして問われるパターンがよくあります。

 

問題:while文について

早速ですが、次の2問を解いてみてください。

問1

A. 「1233」と 表示される
B. 「123」と 表示される
C. 「13」と 表示される
D.   コンパイルエラー
E.   無限ループになる

 

問2

A. 「2:2」と 表示される
B. 「3:3」と 表示される
C. 「2:3」と 表示される
D.   コンパイルエラー
E.   無限ループになる

 

いかがでしょうか?

 

 

答えは

問1 C
問2 E です。

 

Java Silver 問題集
参考記事【Java Silver問題集】高頻出・間違えやすい問題たち

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。 出題確率が高く、間違いやすい例題が解説付きで100問以上あります。   Java Silver 問 ...

続きを見る

 

while文のポイントと解説

while文の構文は次の通りで、条件式がTrueの間はループをし続けます。

while文の構文

while(条件式) {
 ~処理~
}

条件式はループを繰り返すといずれはFalseになるようにしなければいけません。

もし、ずっとTrueのままでは無限ループになってしまい、正常な処理が行われません。

例文:正常なwhile文
int a = 0;
while( a < 10 ) {
~処理~
a++;
}

処理が10回繰り返される。

例文:無限ループになるwhile文
int a = 0;
while( a < 10 ) {
~処理~
}

aがずっと0のままなので、条件式がずっとTrueとなり、無限ループになる。

 

解説

今回の2問を1つずつ解説していきます。

 

問1

A. 「1233」と 表示される
B. 「123」と 表示される
C. 「13」と 表示される
D.   コンパイルエラー
E.   無限ループになる

 

この問題ではwhile文の中にif文があります。

while文ではaが3未満のときにループが実行され、aは11行目の式で更新されます。

bは1で一定なので、11行目でaは1ずつ増えていきます。

if文では"a==b"の時、つまりaが1の時にif文内でaが出力されます。

while文を抜けた後はaが出力されるので、3が出力されます。

したがって、「1 3」が出力されるので答えはCです。

 

問2

A. 「2:2」と 表示される
B. 「3:3」と 表示される
C. 「2:3」と 表示される
D.   コンパイルエラー
E.   無限ループになる

 

この問題ではwhile文の中にもう1つwhile文があります。

外側のwhile文はaが3未満のとき内側のwhile文はbが3未満のときにループします。

aもbも内側のwhile文の中で、1ずつ加算されます。

ややこしいwhile文の処理を追うときは、次のようにメモを書いてみると整理しやすいです。

 

外側のwhile文
(a<3)
内側のwhile文
(b<3)
a b
ループ前 ループ前 0 1
1ループ目 1ループ目 1 2
2ループ目 2 3
2ループ目 ループなし 2 3
3ループ目 ループなし 2 3








このようにbが3になると内側のwhile文はループしなくなるため、aもbも加算されなくなります。

そのため、aは2のままとなり、外側のwhile文では条件式(a<3)がずっとTrueとなるので、無限ループが起きてしまいます。

したがって、答えはEです。

 

 

Java Silver 問題集
参考記事【Java Silver問題集】高頻出・間違えやすい問題たち

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。 出題確率が高く、間違いやすい例題が解説付きで100問以上あります。   Java Silver 問 ...

続きを見る

 

-IT転職・プログラミングスクール
-,

Copyright© 人生2段飛ばし , 2020 All Rights Reserved Powered by AFFINGER5.