Lua學習五----------Lua循環


© 版權聲明:本文為博主原創文章,轉載請注明出處

1.循環類型

  1.1 while循環

    - 語法:while(condition) do ...<執行語句> end

    - 解析:判斷condition是否為true,為true執行語句,false結束循環

  1.2 for循環

    1.2.1 數值for循環

      - 語法:for var = exp1, exp2, exp3 do ...<執行語句> end

      - 解析:var從exp到exp2,步長為exp3(可選,默認為1);exp1,exp2,exp3都是數值

    1.2.2 泛型for循環

      - 語法:

        1)for k, v in pairs(tab) ...<執行語句> end

        2)for k, v in ipairs(tab) ...<執行語句> end

      - 解析:

        1)通過迭代器函數pairs來遍歷table的所有值,tab是一個table,k是索引,v是索引對應的值

        2)ipairs與pairs作用相似,不過pairs遍歷所有key,ipairs只遍歷key值為整數的

  1.3 repeat...until循環

    - 語法:repeat ...<執行語句> until(condition)

    - 解析:先執行語句,然后判斷condition是否為true,為true繼續執行語句,false結束循環(repeat...until循環至少執行一次)

  1.4 嵌套循環 

    - 在循環內再嵌套一個或多個循環

2.循環控制語句

  2.1 break語句

    - 退出當前循環語句,並開始執行緊接着的語句

3.無限循環

  - 在循環體中,如果條件永遠為true,循環語句就會永遠執行下去

4.loops.lua

print("while:")
a = 0
while(a < 3) do
	local x = a * 3 - 1
	print("x = " .. x)
	a = a + 1
end

print("\nfor:")
for i = 1, 5 do									-- 數值for循環,默認步長為1
	print("第" .. i .. "次循環")
	i = i + 1
end
print()
for i = 5, 1, -2 do								-- 數值for循環,步長為-2
	print("第" .. i .. "次循環")
	i = i + 1
end


tab = {
	key1 = "val1",
	key2 = "val2",
	"val3"
}

print("\npairs:")
for k, v in pairs(tab) do						-- 泛型for循環,pairs可迭代table中的所有key
	print("k = " .. k .. " , v = " .. v)	
end
print("\nipairs:")			
for k, v in ipairs(tab) do						-- 泛型for循環,ipairs只可迭代table中key值為整數的
	print("k = " .. k .. " , v = " .. v)
end

print("\nrepeat:")
x = 0
repeat											-- repeat...until循環,先執行后判斷條件,所以至少執行一次
	print("x = " .. x)
	x = x - 1
until(x < 0)

print("\nNested loop:")							-- 嵌套循環,在一個循環里嵌套一個或多個循環語句
y = 2
while(y > 0) do
	for j = 1, 3 do
		print(y .. " * " .. j .. " = " .. j * y)
	end
	y = y - 1
end

print("\nbreak:")
for i = 0, 10 do								-- break,退出當前循環或語句
	print("i = " .. i)
	if(i == 2) then
		print("break...")
		break
	end
end

5.效果預覽

參考:http://www.runoob.com/lua/lua-loops.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM