|
新手学Lua 语言第八课:循环语句 (三)
1.我们执行循环,如果我们想让循环中途停止不再执行应该怎么做呢?
这里我们就要用到关键字break,它的作用就是跳出正在执行的循环。他只能在循环中使用。
for i=1,10,1 do if i==8 then
break
end
print(i)
end
2. Lua 语言 循环判断语句是允许嵌套使用的,我们用来处理一些比较复杂的问题
例1 有 1 2 3 4 四个数字,能组成多少个互不相同且无重复数字的三位数字?并输出在屏幕上。
这个程序的编写,我们可以先组成所有的排列,然后把不符合条件的去掉,只输出符合条件的数值,这样的思路来编程.
for i=1,4,1 do --百位上数设成 i,从1到4 ,步长是1
for j=1,4,1 do --十位上数设成 j ,从1到4 ,步长是1
for p=1,4,1 do --个位上数设成 p,从1到4 ,步长是1
if i~=j and i~=p and j~=p then --如果它们都不相等,也就是不重复
print(i,j,p) --那么输出 i , j , p 的数
end -- if 语句结束
end -- for 个位 语句结束
end -- for 十位 语句结束
end -- for 百位 语句结束
编译器我们可以逐条观看这三个变量的变化,我们输写好程序后,点上方一个象手一样的图标,那个是断点.然后点后面那个逐语句
再到最下方点变量窗口,把三个我们命名的变量输入进去,这里我们点上方的"逐语句"图标,就可以一步一步的看到这些变量的变化啦!
例:利用学过的知识,做一个黄金分割数列,前20个数字输出出来
( 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21,...n)
function num(i)
if i<=2 and i>0 then
return 1 --因为前面是两个1,所以我们设如果它小于等于2,大于0,就返回1 这样就可以输出两个1
else
local j=num(i-1) +num(i-2) --如果是多少位上的数,就是这个位数减1和减2的和组成,同学们可以去推算一下看看
return(j)
end
end
i=1
while i<=20 do --这里是取20个数来显示
print ("第"..i.."个数是"..num(i)) --输出我们要的数值
i=i+1 -- i 的个数一个一个向上加
end
教程观看地址:
链接:https://pan.baidu.com/s/1Q2pgAqCAyZvlNd2whbPbtQ 提取码:8888
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|