使用循环解决 if number < than 200 previous numbers, return 1
Using loop to solve if number < than 200 previous numbers, return 1
我正在 lua 中编写一个小程序,我希望得到一些关于什么是最正确的方法来解决这个问题的指示。基本上,如果我的数字大于最后 200 个数字,return 1,否则 return 0.
我认为最好的方法是循环?
假设 x 是我的数字在 table 中的位置,然后我想检查它是否大于前 200 个数字,如果是 return 则在末尾为 1,如果不是则为 0。
while (x > x-a)
do
isbigger = 1;
a = a+1;
return isbigger;
end
我不确定这是否是正确的语法明智,它在技术上也会 return 1 每次它通过循环时我只希望它在最后如果我的数字大于 200前一个。另外,如果它是假的(我猜想休息一下),如何摆脱循环?
感谢您的帮助,祝您有愉快的一天!
如果要遍历一组值,则应使用 for 循环。你也不希望从循环内部 return isbigger
因为它会过早地结束循环
local last = 10
local myNumber = 123
local numbers = {}
--Setup our example numbers table
math.randomseed(os.clock())
for i = 1, 40 do
numbers[i] = math.random(1,200)
end
--Run comparison on our the last x values
local isBigger = true
for i = #numbers, #numbers - last, -1 do
print(myNumber, numbers[i], myNumber > numbers[i])
isBigger= isBigger and myNumber > numbers[i]
end
print("isBigger is: " .. isBigger)
return isBigger and 1 or 0
示例输出
123 181 false
123 6 true
123 77 true
123 78 true
123 145 false
123 130 false
123 104 true
123 114 true
123 6 true
123 4 true
123 15 true
isBigger is: false
上面的 for 循环更适合理解正在发生的事情,但这个循环更适合使用,因为它会在发现显示 myNumber
不更大的结果后退出。
local isBigger = true
for i = #numbers, #numbers - last, -1 do
print(myNumber, numbers[i], myNumber > numbers[i])
if not (myNumber > numbers[i]) then
isBigger = false
break
end
end
我正在 lua 中编写一个小程序,我希望得到一些关于什么是最正确的方法来解决这个问题的指示。基本上,如果我的数字大于最后 200 个数字,return 1,否则 return 0.
我认为最好的方法是循环? 假设 x 是我的数字在 table 中的位置,然后我想检查它是否大于前 200 个数字,如果是 return 则在末尾为 1,如果不是则为 0。
while (x > x-a)
do
isbigger = 1;
a = a+1;
return isbigger;
end
我不确定这是否是正确的语法明智,它在技术上也会 return 1 每次它通过循环时我只希望它在最后如果我的数字大于 200前一个。另外,如果它是假的(我猜想休息一下),如何摆脱循环? 感谢您的帮助,祝您有愉快的一天!
如果要遍历一组值,则应使用 for 循环。你也不希望从循环内部 return isbigger
因为它会过早地结束循环
local last = 10
local myNumber = 123
local numbers = {}
--Setup our example numbers table
math.randomseed(os.clock())
for i = 1, 40 do
numbers[i] = math.random(1,200)
end
--Run comparison on our the last x values
local isBigger = true
for i = #numbers, #numbers - last, -1 do
print(myNumber, numbers[i], myNumber > numbers[i])
isBigger= isBigger and myNumber > numbers[i]
end
print("isBigger is: " .. isBigger)
return isBigger and 1 or 0
示例输出
123 181 false
123 6 true
123 77 true
123 78 true
123 145 false
123 130 false
123 104 true
123 114 true
123 6 true
123 4 true
123 15 true
isBigger is: false
上面的 for 循环更适合理解正在发生的事情,但这个循环更适合使用,因为它会在发现显示 myNumber
不更大的结果后退出。
local isBigger = true
for i = #numbers, #numbers - last, -1 do
print(myNumber, numbers[i], myNumber > numbers[i])
if not (myNumber > numbers[i]) then
isBigger = false
break
end
end