遍历数组
--遍历数组
table={1,4,5,23,6}
function displaytable(t)
local s=""
for i,v in ipairs(t) do
s=s..v.." "
end
return "数组:"..s
end
print(displaytable(table))
1.查找数组最大值
--1.查找数组最大值
arr = {1,2,3,4,5,5,5,5,8,9,1}--定义数组
function maxnum(arr)
print("数组为:"..displaytable(arr))
local max=0;
for i,v in ipairs(arr)
do
if (max<v)
then
max=v;
end
end
return max;
end
print("数组中最大值是:",maxnum(arr));
2.计算数的n次方
--2.数字的n次方
function fn(num,n)
number=num
for i=2,n do
number=number*num
end
return "数"..num.."的"..n.."次方是"..number
end
-- print("输入基数:")
-- local num=io.read()
-- print("输入次方数:")
-- local n=io.read()
print(fn(2,3))
3.两个数的加、减、乘、除
-- --3.两个数的加减乘除
function mymath(num1,num2)
print("数字:"..num1.."和"..num2.."的加减乘除")
print(num1.."+"..num2.."="..num1+num2)
print(num1.."-"..num2.."="..num1-num2)
print(num1.."*"..num2.."="..num1*num2)
print(num1.."/"..num2.."="..num1/num2)
end
mymath(5,10)
4.数的阶乘(递归)
--4.数的阶乘(递归)
number=5
function myfun(num)
if num==0
then
return 1
else
return num*myfun(num-1)
end
end
print("数"..number.."的阶乘为"..myfun(number))
5.数的阶乘(repeat..until)
--5.数的阶乘(repeat..until)
number=5
function myfun(n)
local i = 1
if n < 1 then
return 1
end
repeat i = n * i
n = n - 1
until n == 0
return i
end
print("数"..number.."的阶乘为"..myfun(number))
6.九九乘法口决
--6.九九乘法口决
function myfun()
for a=1,9 do --循环一从1到9
local s="" --记录
for b=1,a do --循环二从1到a
s=s..b.."X"..a.."="..a*b.."\t"
end
print(s)
end
end
print("九九乘法口诀")
myfun()
7.表翻转
--7.表翻转
arr={1,2,3,4,5,6,7} --自定义初始表
function fun1(arr)
local s1=""
for j,val in ipairs(arr) do
s1=s1..val.." "
end
print("初始数组:"..s1)
end
fun1(arr)
function fun2(arr) --翻转函数
b={} --空table记录数据
arrlen=#arr --数组长度
for i,v in ipairs(arr) do
b[i]=arr[arrlen+1-i] --翻转
end
local s2="" --连接数据
for j,val in ipairs(b) do
s2=s2..val.." "
end
print("翻转数组:"..s2)
end
fun2(arr)
8.__sub表相减
--8.__sub表相减
arr1={a=5,b=6,c=7} --表一
arr2={a=2,b=6,c=8} --表二
setmetatable(arr1,{ --设置元表
__sub=function(table1,table2) --设置__sub键逻辑
local s={}
s.a=table1.a-table2.a
s.b=table1.b-table2.b
s.c=table1.c-table2.c
return s
end
})
s=arr1-arr2 --执行表的相减操作
print(s.a,s.b,s.c)
9.__index查找表
--9.__index查找表
arr1={x=1,y=2}
arr2={z=3,q=4}
setmetatable(arr1,{
__index=arr2
})
print(arr1.q) --在arr1中查找q,因为arr1本身没有,所以会在arr2中继续找
10.模块
--10.模块
--lua require模块加载机制:http://www.daileinote.com/computer/lua/06
package.path = 'D:/code/module.lua;'..package.path --添加自定义搜索路径,即要引用的文件的地址
m=require('module') --加载模块,需要存在于相关路径中了才可找到
print(m.funC(3,4))
print(m.funS(3,4))