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)) --打印计算结果
|