zoukankan      html  css  js  c++  java
  • 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("
    for:")
    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("
    pairs:")
    for k, v in pairs(tab) do						-- 泛型for循环,pairs可迭代table中的所有key
    	print("k = " .. k .. " , v = " .. v)	
    end
    print("
    ipairs:")			
    for k, v in ipairs(tab) do						-- 泛型for循环,ipairs只可迭代table中key值为整数的
    	print("k = " .. k .. " , v = " .. v)
    end
    
    print("
    repeat:")
    x = 0
    repeat											-- repeat...until循环,先执行后判断条件,所以至少执行一次
    	print("x = " .. x)
    	x = x - 1
    until(x < 0)
    
    print("
    Nested loop:")							-- 嵌套循环,在一个循环里嵌套一个或多个循环语句
    y = 2
    while(y > 0) do
    	for j = 1, 3 do
    		print(y .. " * " .. j .. " = " .. j * y)
    	end
    	y = y - 1
    end
    
    print("
    break:")
    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

  • 相关阅读:
    [nRF51822] 1、一个简单的nRF51822驱动的天马4线SPI-1.77寸LCD彩屏DEMO
    [安卓] 18、一个简单的例子做自定义动画按钮和自定义Actionbar
    [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”
    [安卓] 17、一个简单的例子学安卓侧滑设计——用开源slidingmenu
    [安卓] 16、ListView和GridView结合显示单元实现自定义列表显示效果
    mysql常用处理时间的相关函数
    Mysql中HAVING的相关使用方法
    mysql中常见正则表达式的应用
    Linux系统模拟发送HTTP的get和post请求
    mysql删除字符串的前后的空格
  • 原文地址:https://www.cnblogs.com/jinjiyese153/p/6831998.html
Copyright © 2011-2022 走看看