第一次——参考易百教程——lua教程快速学习 (学习内容建立在阅读者具备基础的C或是C++知识)
操作系统版本:Windows10
软件:SciTE
有时需要多次执行相同代码块。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。
常见循环基本遵循C/C++规范,分为
a = 10
while( a < 20 ) --[[ 若为真则开始循环,若为假则跳出循环结束 --]]
do --[[执行开始]]
print("Value of a:", a) --[[执行开始]]
a = a + 1
end --[[执行结束]]
for i = 10,1,-1 --[[输入值,循环执行的最大值或最小值,增量(正负皆可)]]
do
print(i)
end
--[[
1、init首先执行,只执行一次。此步骤允许声明和初始化任何循环控制变量
2、接下来执行max/min。循环继续执行的最大值或最小值。内部创建条件检查并比较初始值
3、在执行完for后,控制流调回increment/decrement(增量/减量),以更新循环控制变量
4、再次评估条件,真则继续,假则跳出循环
]]
--[ 局部变量定义 --]
a = 10
--[ 局部变量定义 --]
repeat
print("value of a:", a)
a = a + 1
until( a > 15 )
until循环中的语句在测试条件之前执行一次。如果条件为假,则控制流跳回来执行,循环中的语句再次执行
--[[嵌套for循环]]
for init,max/min value, increment
do
for init,max/min value, increment
do
statement(s)
end
statement(s)
end
--[[嵌套while循环]]
while(condition)
do
while(condition)
do
statement(s)
end
statement(s)
end
--[[嵌套repeat...until循环]]
repeat
statement(s)
repeat
statement(s)
until( condition )
until( condition )
--[[嵌套for循环 实例]]
j = 2
for i = 2,10 do
for j = 2,(i/j) , 2 do
if(not(i%j))
then
break
end
if(j > (i/j))then --[[注意if...then的使用]]
print("Value of i is",i)
end
end
end
a = 10
while( a < 20 )
do
print("value of a:", a)
a=a+1
if( a > 15)
then
--[ 使用break语句终止循环 --]
break
end
end
a = 10;
if( a < 20 )
then
print("a is less than 20" );
end
print("value of a is :", a);
如果布尔表达式的计算结果为true(即判定为真或数值为0),那么将执行if语句中的代码块。 如果布尔表达式的计算结果为false,则将执行if语句结束后(在结束大括号之后)的第一组代码。Lua编程语言假定布尔true和non-nil值的任意组合为true,如果它是布尔false或nil,则假定为false值。
a = 100;
if( a < 20 )
then
print("a is less than 20" )
else
print("a is not less than 20" )
end
print("value of a is :", a)
--[[if…else if…else语句]]
--[[
使用if,else if,else语句时,需要记住几点
1、if语句有零个或一个else语句,它必须在else if语句之后
2、if语句有零或多个else if语句,并且它们必须在else语句之前
3、当有一个if else匹配成功,其余的其他if或者if else都不会再测试
]]
a = 100
if( a == 10 )
then
print("Value of a is 10" )
elseif( a == 20 )
then
print("Value of a is 20" )
elseif( a == 30 )
then
print("Value of a is 30" )
else
print("None of the values is matching" )
end
print("Exact value of a is: ", a )
a = 100;
b = 200;
if( a == 100 )
then
if( b == 200 )
then
print("Value of a is 100 and b is 200" );
end
end
print("Exact value of a is :", a );
print("Exact value of b is :", b );
总结:相比于C与C++,lua在循环语句中几乎没变,但是在决策语句中新增加了一个then,即表示if为真的情况,