这里是脚本编写新手。基本上,我需要编写一个程序来接受 10 个输入数字并返回列表中最大的数字。
我有这段代码,但显然它没有运行:
class Generator
def getNumbers
number = Array.new
puts "To begin, You will need to enter your numbers."
print "Press Enter to continue."
Console_Screen.pause
10.times do
print "\nPlease enter any number: "
input = STDIN.gets
input.chop!
list.push
return list
end
list.push(number)
print list.max
end
end
Console_Screen.new
Find = Generator.new
end
任何人都可以帮我解决我错误的编码吗?
最佳答案
您的代码存在很多问题。其中我可以指出:
1) 您创建了一个名为 number
的数组来存储您的数字,然后尝试将它们推送到另一个名为 list
的变量;
2) 正如 @tadman 指出的,您在 times
block 内使用了 return,这使得该 block 仅执行一次;
3) 您从未调用 getNumbers 来使您的流程真正发生!
这段代码可以满足您的需要:
class Generator
def get_numbers
numbers = Array.new
puts "To begin, You will need to enter your numbers."
puts
10.times do
print "\nPlease enter any number: "
input = STDIN.gets
input.chop!
numbers.push(input.to_i)
end
print numbers.max
end
end
Find = Generator.new
Find.get_numbers
请注意,我将您的方法名称从 getNumbers
更改为 get_numbers
,这更像 Ruby。
请注意,我还将数组的名称从 number
更改为 numbers
,因为它将存储数字,而不是单个数字。正确命名变量可以帮助您正确思考问题。当其他人阅读您的程序时,它也会有所帮助。即使是六个月后,如果您没有正确命名事物或编写好的注释,您也会在理解自己的代码时遇到问题。
顺便说一句,我还使用#to_i
将数字作为整数推送到numbers
。这将使数字作为数字而不是字符串进行比较。如果你稍微研究一下,你会发现这可能有点不同。如果有人输入 0300
作为数字,它将被视为小于 200
作为字符串,但当转换为整数时,它们将按正确的顺序排列。
关于ruby - 生成最多 10 个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40392132/