Luaプログラミング入門 > 第4章 制御文 > forによる繰り返し


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

forによる繰り返し 応援する 

for構文にはNumeric forとGeneric forの2種類が存在します. Generic forは難しいので,また後の章で説明することとします. ここではNumeric forについて説明していきます.

Numeric forもwhile同様繰り返しの処理を行う場合に使用します. ただし,whileとは違い,終了条件が数値でしか指定できません.

書式
for 初期値, 終了値, 増加量 do
    処理
end

増加量は省略することができます. その場合,自動的に増加量は1となります.

前節で登場したHello worldを10回表示するプログラムをfor を使って書き直すと次のようになります.

for i = 1, 10, 1 do
        print( i .. "回目:Hello world!")
end

iが1で始まり,iが10になるまで,iを1ずつ増加させていきます. つまり,iが10以下の場合に繰り返しが行われます.

実行結果
1回目:Hello world!
2回目:Hello world!
3回目:Hello world!
4回目:Hello world!
5回目:Hello world!
6回目:Hello world!
7回目:Hello world!
8回目:Hello world!
9回目:Hello world!
10回目:Hello world!

増加量は省略することができます. その場合は,自動的に1が割り当てられます.

for i = 1, 10 do
        print( i .. "回目:Hello world!")
end

実行結果は先ほどと同じです.

増加量を4に変更してみましょう.どのような実行結果と なるでしょうか.

for i = 1, 10, 4 do
        print( i .. "回目:Hello world!")
end
実行結果
1回目:Hello world!
5回目:Hello world!
9回目:Hello world!

forを使う上で注意しなければならないことがあります. それは,初期値で定義した変数(ループ変数)は for文の中でのみ有効だということです. つまり,forを抜けた時点でループ変数は消滅してしまいます.

例えば次のようなコードを書いたとします.

for i = 1, 10, 4 do
        print( i .. "回目:Hello world!")
end
if i == nil then
        print ("iは定義されていません")
end

for文で使用しているiとif文で使用しているiは別物です. 実行結果は以下のようになります.

実行結果
1回目:Hello world!
5回目:Hello world!
9回目:Hello world!
iは定義されていません

iは定義されていないので,nilとなっています.


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation