游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)

游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)

FOR THE SIGMA

FOR THE GTINDER

FOR THE ROBOMASTER

简介:

第一次——参考易百教程——lua教程快速学习 (学习内容建立在阅读者具备基础的C或是C++知识)

操作系统版本:Windows10
软件:SciTE

更新:

内容:

循环结构

有时需要多次执行相同代码块。 通常,语句按顺序执行:首先执行函数中的第一个语句,然后执行第二个语句,依此类推。
常见循环基本遵循C/C++规范,分为

  • while循环:在给定条件为真时重复语句或语句组,它在执行循环体之前测试条件
    游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第1张图片
a = 10

while( a < 20 ) --[[ 若为真则开始循环,若为假则跳出循环结束 --]]
	do  --[[执行开始]]
		print("Value of a:", a) --[[执行开始]]
		a = a + 1
	end --[[执行结束]]
  • for循环:多次执行一系列语句,并缩写管理循环变量的代码
    游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第2张图片
for i = 10,1,-1 --[[输入值,循环执行的最大值或最小值,增量(正负皆可)]]
do 
   print(i) 
end

--[[
1、init首先执行,只执行一次。此步骤允许声明和初始化任何循环控制变量
2、接下来执行max/min。循环继续执行的最大值或最小值。内部创建条件检查并比较初始值
3、在执行完for后,控制流调回increment/decrement(增量/减量),以更新循环控制变量
4、再次评估条件,真则继续,假则跳出循环
]]
  • repeat…unit循环:重复语句组的操作,直到满足until条件(则是lua新的循环方式)
    游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第3张图片
--[ 局部变量定义 --]
a = 10

--[ 局部变量定义 --] 
repeat
   print("value of a:", a)
   a = a + 1
until( a > 15 )

until循环中的语句在测试条件之前执行一次。如果条件为假,则控制流跳回来执行,循环中的语句再次执行

  • 嵌套循环:可在任何循环中使用另一个或多个循环,如:while,for或do…while循环
    常见三个模板
--[[嵌套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

游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第4张图片

  • break控制循环:当在循环内遇到break语句时,循环立即终止,程序控制在循环后的下一个语句处重新开始,如果使用嵌套循环(即,一个循环中使用另一个循环),则break语句将停止执行最内层循环并开始执行该块之后的下一行代码。
    游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第5张图片
a = 10
while( a < 20 )
do
   print("value of a:", a)
   a=a+1
   
   if( a > 15)
   then
      --[ 使用break语句终止循环 --]
      break
   end
end

决策结构

  • if:if语句由布尔表达式后跟一个或多个语句组成
    游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第6张图片
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值。

  • if…else:if语句后面可以跟一个可选的else语句,该语句在布尔表达式为false时执行
    游戏开发学习笔记——lua脚本语言——第二天(循环结构、决策结构)_第7张图片
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)
--[[ifelse ifelse语句]]
--[[
使用ifelse ifelse语句时,需要记住几点
1if语句有零个或一个else语句,它必须在else if语句之后
2if语句有零或多个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 )
  • 嵌套if:在一个if或else if语句中使用另一个if或else if语句
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为真的情况,

你可能感兴趣的:(Lua脚本语言,游戏开发,lua,lua脚本语言,lua学习笔记)