同じ処理を繰り返し行なう作業はたくさんあります。例えば、フォルダ内のファイルを全て読み出して、ページ上に配置する、テキストファイルの内容を1行ごとに読み込んで処理する、といったものです。
一定数繰り返す場合には、以下のように書く事がほとんどです。
一定数繰り返す場合には、以下のように書く事がほとんどです。
for(i=0; i< 繰り返し数; i++)
{
繰り返す処理
}
10回繰り返すのであれば以下のようになります。
for(i=0; i< 10; i++)
{
繰り返す処理
}
999回なら以下のようになります。
for(i=0; i< 999; i++)
{
繰り返す処理
}
ちなみに無制限に繰り返すには以下のように書きます。ただし、失敗するとアプリケーションを終了しないといけなくなってしまうので注意しましょう。
for(;;)
{
繰り返す処理
}
ところで、質問メールで for(i=0; i< 10; i++) に何でiが多く使われるのかと聞かれることがあります。別にiを使わなくてもcountでも構いません。つまり以下のように書いても問題ありません。逆にiを使う方が問題なのだ、という意見も昔からあります。
for(count=0; count< 10; count++)
{
繰り返す処理
}
じゃあ、何でiなの? という事になります。このiが使われる原因になったのはFORTRANというプログラム言語の影響が大きいようです。このFORTRANではI〜Nまでで始まる変数名の場合は、暗黙の宣言により「整数値」だけを扱うものとするというルールがありました。
つまり、I,J,K,L,M,Nであれば何も指定しなければ小数値を扱うことができず整数値のみの扱いになります。このため、繰り返しに使われるのはI、J、Kが圧倒的に多いわけです。
でも、I1, I2とかIの後ろに数値を付けて繰り返しに使う変数名にしてもいいのでは? と思われそうですが、昔は変数名の長さに制限があり、言語によっては1文字、BASIC言語でも2文字までしか使えない(認識しない)という時代がありました。結果的にI,J,Kといった1文字の変数になってしまったと思われます。
そして、FORTRANからBASIC言語に引き継がれ、BASIC言語を学習したプログラマがC言語へ、と伝承された上に人のプログラムを見ると、なぜか繰り返し変数がi,j,kになっているので、真似してそのまま引き継がれてしまったといったところでしょう。
ただし、これは古くからプログラムを作成してきた人の場合であって、新しい時代(1990年後半)では、このような暗黙のルールはありませんから、繰り返し変数には意味が分かる変数名を書く人も多いでしょう。
と思ってグーグルコードサーチで、ざっと見てみたら現在でもiやjを使っているサンプルの方が多いようです。
< http://www.google.com/codesearch?hl=ja&lr=&q=for
>
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
需要があるかどうかさっぱりですが、HDR(ハイダナミックレンジ)画像の素材ページを作ってみました。
< http://footage.openspc2.org/sozai/HDRI/
>
これまでと違って、合成用に使う元データもダウンロードできるようになっています。Photomatixが好みではない方はPhotoshop CS2/CS3などで合成することもできます。
{
繰り返す処理
}
10回繰り返すのであれば以下のようになります。
for(i=0; i< 10; i++)
{
繰り返す処理
}
999回なら以下のようになります。
for(i=0; i< 999; i++)
{
繰り返す処理
}
ちなみに無制限に繰り返すには以下のように書きます。ただし、失敗するとアプリケーションを終了しないといけなくなってしまうので注意しましょう。
for(;;)
{
繰り返す処理
}
ところで、質問メールで for(i=0; i< 10; i++) に何でiが多く使われるのかと聞かれることがあります。別にiを使わなくてもcountでも構いません。つまり以下のように書いても問題ありません。逆にiを使う方が問題なのだ、という意見も昔からあります。
for(count=0; count< 10; count++)
{
繰り返す処理
}
じゃあ、何でiなの? という事になります。このiが使われる原因になったのはFORTRANというプログラム言語の影響が大きいようです。このFORTRANではI〜Nまでで始まる変数名の場合は、暗黙の宣言により「整数値」だけを扱うものとするというルールがありました。
つまり、I,J,K,L,M,Nであれば何も指定しなければ小数値を扱うことができず整数値のみの扱いになります。このため、繰り返しに使われるのはI、J、Kが圧倒的に多いわけです。
でも、I1, I2とかIの後ろに数値を付けて繰り返しに使う変数名にしてもいいのでは? と思われそうですが、昔は変数名の長さに制限があり、言語によっては1文字、BASIC言語でも2文字までしか使えない(認識しない)という時代がありました。結果的にI,J,Kといった1文字の変数になってしまったと思われます。
そして、FORTRANからBASIC言語に引き継がれ、BASIC言語を学習したプログラマがC言語へ、と伝承された上に人のプログラムを見ると、なぜか繰り返し変数がi,j,kになっているので、真似してそのまま引き継がれてしまったといったところでしょう。
ただし、これは古くからプログラムを作成してきた人の場合であって、新しい時代(1990年後半)では、このような暗黙のルールはありませんから、繰り返し変数には意味が分かる変数名を書く人も多いでしょう。
と思ってグーグルコードサーチで、ざっと見てみたら現在でもiやjを使っているサンプルの方が多いようです。
< http://www.google.com/codesearch?hl=ja&lr=&q=for
>
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
需要があるかどうかさっぱりですが、HDR(ハイダナミックレンジ)画像の素材ページを作ってみました。
< http://footage.openspc2.org/sozai/HDRI/
>
これまでと違って、合成用に使う元データもダウンロードできるようになっています。Photomatixが好みではない方はPhotoshop CS2/CS3などで合成することもできます。
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
- ActionScript逆引きクイックリファレンス―5&MX&MX2004&8対応 for Windows & Macintosh
- 田中 康博 古籏 一浩 林 拓也
- 毎日コミュニケーションズ 2005-12
- おすすめ平均
- Flash(ActionScript)の開発前の調査にも役立ちます
- 良書です。
- Google Maps API逆引きクイックリファレンス―WEB2.0対応
- 古籏 一浩
- 毎日コミュニケーションズ 2006-09
- おすすめ平均
- 簡単にできます
- ようやく出ました。使えるGoogleMapsリファレンス。
by G-Tools , 2008/04/14