您的位置:首页 > 编程语言 > Lua

Lua学习——循环、函数、表等简单用法

2013-05-21 15:07 453 查看
--[[
时间:2013年5月20日9:32:14
作者:PhoenixCao
内容:Lua程序练习1
--]]
-- 这是注释,函数转换写法
local cclog = function(...)
print(string.format(...))
end

-- 这里是函数声明
function Counting()
-- for循环写法 等同于for index = 1, 5000,1 do
for index = 1, 5000 do
print(index, "+", index + 1, "=",index+(index+1))
end
end

function ReverseCounting()
-- for循环写法 从5000到1,步长为2递减
for index = 5000, 1, -2 do
print(index, "+", index + 1, "=",index+(index+1))
end
end

function IfFunction()
-- if使用方法
myVal = 0
if (myVal < 10) and (myVal > 0) then
print("test if")
elseif myVal < 1000 then
print("test elseif")
end

end

function whileRepeatFunction()
-- while、Repeat使用方法
myVal = 0
while myVal < 10 do
-- Lua中无++写法
myVal = myVal + 1
print("test While:",myVal)
end
-- 同do while();
repeat
print("test repeat:",myVal)
myVal = myVal - 1
until myVal < 0

end

-- 函数用法
function valuaFunction(myName,myAge)
print("我的名字:", myName)
print("我的年龄:", myAge)
end
-- (...)参数使用
function valuaFunction(...)
if(arg.n > 0) then
for index = 1, arg.n do
local myString = string.format("%s%d","Argument",index,"")
print(myString,arg[index])
end
else
print("没有参数传递过来")
--local val3 = val1*val2*arg[1]
--myString = string.format("%d%s%d%s%d%s%d",val1,"*",val2,"*",arg[1],"=",val3)
end
end

-- (...)参数使用
function MultiplyFunction(val1,val2, ...)
local myString
if(arg.n == 0) then
myString = string.format("%d%s%d%s%d",val1,"*",val2,"=",val1*val2)
else
local val3 = val1*val2*arg[1]
myString = string.format("%d%s%d%s%d%s%d",val1,"*",val2,"*",arg[1],"=",val3)
end
print(myString)
end

-- 返回值测试
function ReturnFunction1()
-- “..”
local myString = "2013" .. "}"
-- 多返回值测试
return myString, 18
end
function ReturnFunction()
local myString = "你妹返回值测试啊"
-- 多返回值测试(函数作为返回值调用方法)
return myString, 18, ReturnFunction1()--,MultiplyFunction(1,1,1)
end

function ReturnRandomFunction()
local myString = "随机数生成测试:"
-- 多返回值测试(函数作为返回值调用方法)
r1 = math.random(1.0,9.0)
r2 = math.random(1.0,9.0)
r3 = math.random(1.0,9.0)
r4 = math.randomseed(os.time())
return r1,r2,r3,r4
end

-- 这里是函数调用
-- 测试log
cclog("test")
-- Counting()
-- ReverseCounting()
-- IfFunction()
-- whileRepeatFunction()
-- valuaFunction("你妹", 18)
-- valuaFunction(1,2,2,2,2,2,2,2)
-- valuaFunction()
-- MultiplyFunction(1,2,3)
-- ReturnFunction()
-- print(ReturnFunction())
myString = "math.max(7,8,9,10)"
assert(loadstring(myString))()
print((loadstring(myString)))
print(ReturnRandomFunction())

-- 承接返回值
a,b,c,d = ReturnRandomFunction()
print(a,b,c,d)

myTable = {2,4,6,8,10}
-- 数组下标从1开始[1,5]
print("myTable长度为:",#myTable)
for i = 1, #myTable do
print(myTable[i])
end
print(myTable[0])
print(myTable)

a = math.randomseed(os.time())

print(a)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: