- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>答えのxxyxの最後のxをだすとこがよくわからなくて もしかして、while文によるループがどこからどこまでを繰り返すのかを理解できていないのでしょうか。 添付された画像では9行目までしか見えませんが、5行目から始まるwhile文の範囲は10行目以降に続いています。 "y "を出力した時点でaの値は2です。その後10行目以降でaの値もbの値も変化しなければ、ループ継続条件の((a++ < 3) && !b)の結果は真なので、もう一度"x "の出力へ行きます。
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1626/5665)
>自分で解こうとするとxxxyになりました。 どう解こうとしたら、その結果になったのか説明してもらえませんか?
補足
だんだんわかってきたのですが、答えのxxyxの最後のxをだすとこがよくわからなくて
- asuncion
- ベストアンサー率33% (2127/6289)
bをどこでtrueにしているかも見てみたいところですが、 今見えている部分だけでジャッジすると、こういうことです。 aを0で初期化する。 bをfalseで初期化する。 ループに入る。 a < 3かつb == falseだから、 aを1増やして1にする。 "x "を出力する。 aは2ではないので、"y "は出力しない。 a < 3かつb == falseだから、 aを1増やして2にする。 "x "を出力する。 aは2だから、"y "を出力する。 a < 3かつb == falseだから、 aを1増やして3にする。 "x "を出力する。 aは2ではないので、"y "は出力しない。 aが3になったので、ループから抜ける。 出力結果は"x x y x " 前置インクリメントと後置インクリメントについて 調べてみると幸せになれるかも。
補足
丁寧な説明でわかりやすいです。ありがとうございます 答えのxxyxの4つめのxをだすとこがよくわからなくて
お礼
ありがとうございます