先日まで数ヶ月に渡ってはまっていた仕事にようやく目処が着きそうな状況になってきました。
本当自分の力のなさが原因なのですが、おかげで色々なことをおざなりにしてしまったので、巻き返すべく必死に色々手配をしているところです。
さて、JavaScriptなどのプログラミングで使用される「反復処理」の基礎的な文法としてfor文というものがあります。
このfor文、最近でこそ進化形の文法が多く出てきたので、昔より使われる機会は少ないかもしれませんが、プログラムを学ぶ上で誰しも一度は通るものかと思います。
そんなプログラミングを学ぶ上で通るであろうfor文、色々な方に教えていると、以下の点に引っかかることが多いです。
for(let i = 0; i< 10; i++){
}
上記のコードでいう()の部分です。
- 突然iって出てきたけど何?
- ++って何?
など、突然たくさんのものが出てくることに戸惑いを覚える方が多いという印象があります。
ということで、今回のブログでは、for文の()の中の意味、for文自体をどう解釈していけばいいのかについて、見ていきたいと思います!
そもそもfor文の意味って?
繰り返しになりますが、for文はプログラムで反復処理の仕方を学ぶ際に1番最初に通るであろう文法です。
基本的には以下のような構造になっています。
for(初期化; 条件式; 変化式){
}
専門書などでは上記のように表現されることも多いようです。
for文の目的としては「何回プログラム処理を繰り返し行うか」を決めて、指定した回数だけプログラムを反復実行するというもの。
でも、だったら()の中に「繰り返す回数」を表す数字を書けばいいと思いませんか?
少なくとも僕はそう思いましたし、
for(初期化; 条件式; 変化式){
}
上記のような表現って非常に難しいと思うのです。
for文の()の中の意味をわかりやすい言葉に置き換えてみる
では、このfor文の()の中の意味をどう解釈するとわかりやすくなるのでしょうか?
Arrownとしては以下のように考えています。
例えば、以下のようなfor文があったとします。
for(let i = 0; i< 10; i++){
}
このコード、先ほどの難しい表記に照らし合わせてみると、
- let i = 0・・・初期化
- i < 10・・・・条件式
- i++・・・・・変化式
これらをわかりやすい言葉に書き換えると、以下のようになるのではないでしょうか。
- 0から(初期化)
- 10未満であるうちは(条件式)
- 1ずつ数字を増やして数字を唱えてみてねー(変化式)
実際に数字を唱えてみると、
「0,1,2,3,4,5,6,7,8,9」
と数字を唱えることになり、結果「10回」数字を唱えることになります。
その回数こそが「for文でプログラムの反復処理を行う回数」を示しているわけです!
どうでしょう?こう考えると少しわかりやすくなると思いませんか?
for文の()の中にはなぜ反復処理を行う回数を示すだけじゃダメなの?
先ほどの事例を見て、「いや、じゃあ最初から「10回」みたいに繰り返す回数を示す数字を書けばよくない?」と思う方もいるかもしれません。
しかし、同じ「10回の反復処理」といっても、色々な「10回」の反復処理の仕方があるのです!
例えば
- 50人の人に対してプログラム経由で同じメールを送る
- 100人の名簿があったとき、その名簿の偶数番目に並んでいる人にだけプログラム経由で同じメールを送る
みたいなことがあった場合、どちらも同じ「50回の反復」と表現できるのです!
同じ回数の反復処理があるとはいえ、色々なユースケースが想定されるかたこそ、どんなケースにも対応できるように
for(let i = 0; i< 10; i++){
}
このような書き方が標準として採用されているわけですね!
まとめ
ということで、今回はJavaScriptなどプログラミングで使われるfor文について、どう伝えたらわかりやすくなるかを考えてみたという内容でブログ記事を書いてみました!