• ベストアンサー

Javaの質問です

Javaの質問です。 この問題の答えはBです。自分で解くと答えがAになってしまいます。 この問題を解いてみようとしたら、 y=10 が9になるタイミングってどのタイミングですか?式の流れがわかりません

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

  • ベストアンサー
  • tabide
  • ベストアンサー率44% (148/331)
回答No.3

行13「y--;」が実行された時です。 後置演算子「〇--」の意味を正確に表現すると、 「変数の中身を1減らし、その式の返し値として**変更前の**値を返す」 となります。 (「--〇」は、1減らした**変更後の**値を返す) 誤解されやすいのですが、「値を返して、その後に1減らす」ではないことに注意して下さい。 「--y;」との違いが出るのは、「a = y--;」のように返し値が実際に使われる時です。 本問では、返し値はどこも受け取らないまま捨てられるため、少なくとも見た目の上では、「--y;」と「y--;」は同じ処理になります。

その他の回答 (2)

  • SI299792
  • ベストアンサー率47% (774/1618)
回答No.2

これ、紙と鉛筆で解かなければならないのですか? ズルしてパソコンを使いました 1 回目のループ X= 1 Y= 9 2 回目のループ X= 2 Y= 8 3 回目のループ X= 3 Y= 7 4 回目のループ X= 4 Y= 6 5 回目のループ X= 5 Y= 5 となります。

  • watanabe04
  • ベストアンサー率18% (295/1598)
回答No.1

int x = 0; int y = 10; do { y--; y = 9 ++x; x = 1 } while (x < 5); yes; do { y--; y = 8 ++x; x = 2 } while (x < 5); yes; do { y--; y = 7 ++x; x = 3 } while (x < 5); yes; do { y--; y = 6 ++x; x = 4 } while (x < 5); yes; do { y--; y = 5 ++x; x = 5 } while (x < 5); no; System.out.print(x + "," + y); x = 5 y = 5

関連するQ&A