请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站 今天是: 2021-04-13    美好的一天,从现在开始
开启辅助访问      
切换到窄版

Waylee黑技术

 找回密码
 注册会员
搜索
热搜: 天龙 运维 kali
查看: 301|回复: 0
收起左侧

[LUA] 计算乘阶的程序

[复制链接]

292

主题

332

帖子

1401

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1401
发表于 2021-3-6 23:10:06 | 显示全部楼层 |阅读模式
function fact(n)          --function 声明一个函数 函数名
   if n == 0 then
       return 1
        else
          return n * fact(n-1)
        end                 --if 函数结束 类似while for do ....
end                       --fact 函数结束

print("enter a number:")  --打印一个字符串
a = io.read("*number")    --无类型的全局变量a 读取输入
print(fact(a))            --打印计算结果


问题一:如果输入负数会发生什么情况?试试修改程序解决问题。
答:输入小于0的数值,程序会报错        :
new.lua:5: in function 'fact'
new.lua:12: in main chunk

修正后的程序:
function fact(n)          --function 声明一个函数 函数名
   if n == 0 then
       return 1
        else
          return n * fact(n-1)
        end                   --if 函数结束 类似while for do ....
end                       --fact 函数结束

print("enter a number:")  --打印一个字符串
a = io.read("*number")    --无类型的全局变量a 读取输入
while( a < 0 ) do
        print("输入的数值小于0,请重新输入:")
        a = io.read("*number")
end
print(fact(a))            --打印计算结果


高级模式
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

为兴趣而生,注册一起交流。 立即登录云玩 立即注册

QQ|手机版|Waylee黑技术 ( 浙ICP备15015590号-1 )

|浙公网安备33048102000118号

GMT+8, 2021-4-13 03:01 , Processed in 0.063655 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表