• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:for文の変化式について)

for文の変化式についてなぜiの値が0なのか?

このQ&Aのポイント
  • for文の変化式(i++)で、初期化後の値0から1増えるので、1だと思うのですが、なぜ一行目のiの値が0なのでしょうか。
  • 参考書に書いてなかったので不思議に思いました。
  • ご存知の方、どうか理由を教えてください。

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

  • ベストアンサー
回答No.1

forループの  i++ の部分がそのような処理にさせています。  試しに  ++i と変えてみてください。 あなたの予想通りの結果になるはずです。 インクリメント()とデクリメント()は事情に合わせて変数の前後に置くことで挙動を変えることができます。これは大概の高級言語では実装されています。

lade0225
質問者

お礼

お礼が遅くなり申し訳ありません。 ++i を試して疑問が解けました。 for文の変化式についてだけでなく インクリメントの前置/後置の挙動の違いを理解することができました。 回答いただき、本当にありがとうございました!

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

単にこういうことをしているというイメージで良いでしょう。 <script> for (var i = 0; i < 10;){ document.write(i);//実処理 i++; } </script> 結局、変化式であるi++が先に実行されると初期化式でわざわざ初期値を 設定しているのにそれが利用されなくなってロジックがブレるので 伝統的にfor構文は初期値を利用して繰り返し処理をすることになっています。

lade0225
質問者

お礼

お礼が遅くなり申し訳ありません。 回答ありがとうございました!

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

for の 3 番目の項目が実行されるのはあるループを終えて次のループに移るときです。 最初のループの開始時はループとループの間ではないので 3 番目の項目は実行されません。 (処理)の中で continue や break を使っていない場合、 for ((文1); (文2); (文3)) {(処理)} は {  (文1)  while ((文2)) {   (処理)   (文3)  } } と同じ処理になります。

lade0225
質問者

お礼

お礼が遅くなり申し訳ありません。 3盤目の項目が実行されないのは知りませんでした。 回答ありがとうございました!

関連するQ&A