前回はswitch文について、記載してみました。
今回はfor文について書いています。for文はプログラムの中で繰り返し(ループ)処理をするための構文です。
こちらではfor文の概念を学んだ後に、実際にjavascriptでのコードを見て、for文の使い方を理解していきます。
それぞれのプログラミング言語で、使用方法が少し違ったりするので、本記事では概念やイメージを掴んでもらえると良いかと思っています。
それでは、for文を確認していきましょう。
for文とは?
for文について
for文はプログラムの中で、繰り返し処理(ループ)をするための構文になります。
同じような処理を繰り返す場合は、for文などの繰り返し処理を使うと効率的に処理することができます。
実際に書く場合は下記のようになります。
このように[カウンタの初期値]を、変数で用意します。
そして、[継続条件]がtrue(正しい)になる間ループ処理が動きます。
ループの最後まで行って、ループの頭に戻ると[カウンタの更新の箇所]が動作します。
for (カウンタの初期値; 継続条件; カウンタの更新) {
// .....繰り返す処理を書く.....
}
ざっくりと概念を説明しましたが、これだけみてもよくわからないと思います。
実際にコードを見て確認していきましょう!
無限ループについて
無限ループは継続条件の箇所が、ずっとtrue
になってfor文の処理が終わらない状態のことです。
カウンタの初期値と更新する値、継続条件をしっかりと意識して書かないと、無限ループになってバグを作り出す要因になります。
for文を使う場合は、使用する値に気をつけて使うようにしましょう。
for文を使用したコードを見てみよう
javascriptのコードでfor文の使い方を見てみましょう。
javascriptではconsole.logに値を渡すと、値を出力してくれます。
for文を使った通常の処理
for文を使用して、Hello[n]を出力する処理を書いてみました。[n]はiの値です。
for (let i = 0; i < 10; i++) {
console.log("Hello" + i);
}
初期値はi
という変数で、0を格納して定義しました。
継続条件はi < 10
としました。i
が10未満の場合はループを継続するということです。
カウンタの更新の箇所にはi++
と書いています。
ループは中括弧の「{
」から始まって、中の処理を行って、「}
」で終わります。
終わった後は、ループの先頭に戻って、継続条件を評価します。
カウンタを更新して、継続条件がtrueになる場合は、もう一度ループする…といったように動きます。
なので、ここでは“Hello0”が最初に出力され、次にカウンタが「+1」されて“Hello2”が出力されます。
“Hello0” 〜 “Hello9”まで出力されたら、iが10になって継続条件から外れるので、forを抜けて処理が終わります。
for文のカウンタを変えて逆順に処理する
カウンタの値を工夫すると、ループする回数を制限したり、カウンタの値をスキップしたりすることができます。
ここでは、さきほどの“Hello0” 〜 “Hello9”まで出力されている処理を逆順に出力してみました。
for (let i = 9; i > -1; i--) {
console.log("Hello" + i);
}
カウンタの初期値は9です。
ループが回るたびにカウンタは「-1」されていくので、少しづつ減っていきます。
最初に“Hello9”が出力されて、“Hello8”, “Hello7″…と出力されていきます。
最後に“Hello0”が出力されて、ループの先頭に戻ると「-1
」になってループを抜けます。
ループ処理で配列の値を使用する
ループを使う場合は、配列を絡めて処理を行うことが多いです。
下記は配列に3つの果物名を入れて、全て出力する処理になります。
let fruits = ["ぶどう", "れもん", "いちご"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
javascriptではfruits.length
で最大の要素数が取れます。ここでは3になります。
なので、iが0
から2
の間に処理が続き、“ぶどう”, “れもん”, “いちご”と全て出力されます。
無限ループさせる
for文を使って、意図的に無限ループすることもできます。
無限ループをするときには、継続条件のみを書く、while
文の方がよく使われます。
for (;true;) {
console.log("hello");
}
このように、継続条件がずっと続くようにすると、無限ループになります。
ここでは、”hello”がずっと出力されます。
for文とforeach文の違い
for文と似たようなループ処理をするものに、foreach文があります。
for文との違いは、foreach文には配列を渡します。
配列の要素が存在する分ループをさせることができます。
配列の全件のデータを使いたい場合で、foreach文が使える場合にはこちらを実装した方が良いです。
理由としては2点あります。
・カウンタを使用しないので、バグ発生の要因になりにくい
・foreach文が使ってあることで、コードを読み解きやすくなる(全件回すのか…と予想できるため)
foreach文については、プログラミング言語によっては実装されていなかったり、書き方の様式が違うのでプログラミング言語ごとに確認しましょう。
おわりに
今回はプログラミングで使用されるfor文について見ていきました。
for文のイメージは掴んでいただけましたでしょうか。
効率的に処理するためには必要な構文で、配列が出てくる箇所で使うことが多いです。
プログラミング言語によって書き方が違うので、それぞれ使いたい言語の仕様を確認して活用していきましょう。
コメント