• ベストアンサー

Javaの質問です

Javaの問題がわかりません。 この問題の答えはxxyxです。 自分で解こうとするとxxxyになりました。 3つめのxがでてくるタイミングがわかりません

質問者が選んだベストアンサー

  • ベストアンサー
  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.3

>答えのxxyxの最後のxをだすとこがよくわからなくて もしかして、while文によるループがどこからどこまでを繰り返すのかを理解できていないのでしょうか。 添付された画像では9行目までしか見えませんが、5行目から始まるwhile文の範囲は10行目以降に続いています。 "y "を出力した時点でaの値は2です。その後10行目以降でaの値もbの値も変化しなければ、ループ継続条件の((a++ < 3) && !b)の結果は真なので、もう一度"x "の出力へ行きます。

minutes01
質問者

お礼

ありがとうございます

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>自分で解こうとするとxxxyになりました。 どう解こうとしたら、その結果になったのか説明してもらえませんか?

minutes01
質問者

補足

だんだんわかってきたのですが、答えのxxyxの最後のxをだすとこがよくわからなくて

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

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 " 前置インクリメントと後置インクリメントについて 調べてみると幸せになれるかも。

minutes01
質問者

補足

丁寧な説明でわかりやすいです。ありがとうございます 答えのxxyxの4つめのxをだすとこがよくわからなくて

関連するQ&A