IT知識の秘伝書

ループ文(繰り返し処理)- for文

X(Twitter) facebook はてなブックマーク LINE
OgImage

JavaScriptでも繰り返し処理にはいくつかの文法がある。今回はその一つのfor文について解説する。for文には他に2つの種類があるが配列やオブジェクトの解説をしてからレクチャーする。

ねーガオ様、前のページで言っていた業務での大失敗を早く聞かせてください!
めっちゃ嬉しそうだな。一つ言うけどループ文でミスをすると大変な事になるって事を言いたいからな!
あの時はバックエンドのPHPでログファイルをループ文で作成するコードを書いていたんだ。しかし、ミスをしてしまい無限ループに!ファイルを作成するプログラムだったのでサーバにありえんくらい大量のログファイルができてしまった!
結局Apacheが止めてくれたのか容量いっぱいになって止まったのか忘れたけど恐怖の大失敗だ
笑わないでください。とても怖い事じゃないですか!プログラムってミスをすると大変な事になるんだなって事は分かりました

for文のサンプル

for文のカッコの中の話をする。

左が初期化。中央が条件。右が値の更新

for(i = 0; i < 5; i++) { alert( (i + 1) + "回目のこんにちは!"); }

whileの時と同じように5回こんにちは!というようなメッセージが出る。

評価順

サンプルプログラムで評価の流れをみてみよう。

①【初期化】iという変数を定義してそれを0で初期化(1度しか実行されない)

②【条件チェック】iが5未満ならtrue。それ以外はfalseでループを終了

③【ループ処理】alertのメッセージを表示

④【値の更新】iをインクリメント

⑤【②に戻る】

whileとforどっちを使うべきか?

for文を使いましょう。理由は次のページで解説する変数のスコープがあるからだ。

えーじゃあwhileを覚える意味が分かりません!

whileは無限ループでよく使う

普段使うならforが良いが、意図して無限ループを作りたい場合がある。ずっと稼働するシステムや例えばゲームは絶えず処理が必要だ。前述したゲームは無限に画面を更新し描画し続けなければならない。下記のように書いたら分かりやすくfor文よりコードが少なく見やすいので無限ループはwhileが好まれる。

while(1) { ... }

if文の記事でtrueになる条件を書いている通り、数値の1以上はtrueになるので無限ループになる。僕はC言語でこう書けと習った記憶が。


while(true) { ... }

こちらの方が見やすく推奨される。

for文は in や of などもある!

JavaScriptのfor文はオブジェクトを使うループ処理でinと配列を使うループ処理のofがある。詳しくはオブジェクトと配列をレクチャーした後に教える。