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

--[[
	时间: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)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值