function checkCurrency(checker)
return (checker % 2 == 0)
end
local currency1 = 105
local currency2 = 110
local currency3 = 115
if(checkCurrency(currency1) == true) then
print("yes1")
elseif(checkCurrency(currency2) == true) then
print("yes2")
elseif(checkCurrency(currency3) == true) then
print("yes3")
else
print("no currency available")
end
我的代码想法是循环遍历100种货币,而不是像编写货币1,currency2等那样写几行相同的确切代码,就像数学公式一样,因为如您所见,货币上升了每次5,因此起点为105,终点应为500。如果两者都不匹配,则应在结尾处添加else语句。
我的最初想法是:
function checkCurrency(checker)
return (checker % 2 == 0)
end
for i = 105,500,5
do
if(i == 105) then
if(checkCurrency(i) == true) then
print("yes" .. i)
end
if(i ~= 105 and i ~= 500) then
elseif(checkCurrency(i) == true) then
print("yes" .. i)
end
if(i == 500) then
print("no currency available")
end
end
但是不可能,因为它试图结束第二条if语句而不是第一条if语句,因此我不知道如何以安全的方式解决此问题,任何技巧或示例都是一个不错的开始。我也不想检查每一行,如果它适用于示例currency5,它应该停止,就像带有if,elseif和end语句的第一个代码一样。因此它不会遍历500种货币并浪费资源。
答案 0 :(得分:3)
您有多个语法错误:
end
嵌套的if
(第8行的if
由第10行的end
end
组成),同时查看列表时您希望它end
外部if
)elseif
(第12行),则不能使用if
通用解决方案如下所示:
local valid
for i=105,500,5
do
if(checkCurrency(i)) then
valid=i
break
end
end
if (not valid) then
print("no currency available")
else
print("Found " .. valid)
end
答案 1 :(得分:2)
使用循环查找匹配的货币。将该货币存储在变量中。使用break
退出循环。然后使用if
-else
使用该货币进行业务。
local function checkCurrency(checker)
return checker % 2 == 0
end
local currency
for i = 105, 499, 5 do
if checkCurrency(i) then
currency = i
break
end
end
if currency then
print('yes' .. currency)
else
print("no currency available")
end