lua自学笔记——if\function\for\while书写格式、对文件的输入输出

//附加:(1)if语句的格式:

if n == 0 then
    return 1
else
    return 0 
end


(2)function函数格式

function fact(n)
end


(3)for语句的格式

for i = 1,1000 do 
    a[i] = i*2 
end


泛型for循环:

a = {"FF", "AA", "BB", c = 1, b = 2, "LL"}

for k,v pairs(a) do
    print(k, v)
end

//打印结果:
1    FF
2    AA
3    BB
4    LL
b    2
c    1
从输出结果上看是按照ascii码的先后顺序输出的

for k,v ipairs(a) do
    print(k, v)
end

//打印结果:
1    FF
2    AA
3    BB
4    LL
从输出结果上看,只循环里面的数值队

//当数字跳跃,目前tabel里面的数值是到4
a[6] = "OO"
pairs依旧全部打印
1    FF
2    AA
3    BB
4    LL
6    OO
b    2
c    1

ipair在遇到nil值会停止循环,所以打印不变
1    FF
2    AA
3    BB
4    LL


//泛型for与数字型for相同点:1循环变量是循环体内的变量;2决不应该对循环变量作任何赋值

(4)while语句格式

while 条件 do
end


(5)nil只与自身相等
print(a == nil)  --->true
//不同类型的比较都是false

(6)//io.write()与print()差不多,都是输出,但一些格式上有些不一样
//区别:
1.io.write()要不在参数中不加'\n','\t'它自己是不会空行空格的;但print()中以逗号隔开的参数输出时都会自动变为空格隔开,每一次输出完自动换行
2.io.write()参数不能是nil,否则它会报错;但print(nil)输出为nil
3.io.write()参数与参数之间可以使用".."字符串连接符,但是这个会消耗很多资源
4.io.write()是原样输出参数,没有调用tostring,因此io.write({})也会报错,但print()不会报错

//键盘输入输出:
//一般情况下io.write和io.read是一对,他们从stdin标准输入,stdout标准输出  
io.write(data) 将data数据输出到标准输出上;  io.read从标准输入中读数据

//文件输入输出:
//io.input(file) 修改默认输入文件为file文件中的数据,执行这个后就不再是从stdin读取数据
//io.output(file)将文件file设置成默认输出文件,执行这个后输出不显示在屏幕上stdout
例:

io.input("hello.lua") --设置hello.lua为默认输入文件
t = io.read("*all")
io.write(t,'\n')  -----输出整个 hello.lua文件的内容到stdin显示屏上

io.output("hello.lua") --设置hello.lua为默认输出文件
io.write("bbbbbbb",'\n') --bbbbbbb输出到hello.lua这个文件上
io.close()  --关闭输出文件,这时候如果后面再执行io.write()会报错
io.output(io.stdout) --设置标准输出
io.write("bbbbbbb",'\n') --这时输出bbbbbbb会显示在屏幕上



//附加小知识点:
"*all" ---读取整个文件
"*line" ---读取下一行
"*number" ---从字符串转换出一个数值
num  ---读取num个字符
//如果io.read()没有参数,默认读取一行

line = io.read()  //读取一行
io.write()
io.open("hello.lua","r")//以只读形式打开hello.lua文件,打开失败返回nil和错误消息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值