ruby - 生成最多 10 个输入

标签 ruby scripting

这里是脚本编写新手。基本上,我需要编写一个程序来接受 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/

相关文章:

Ruby 正则表达式\1 对 gsub 意味着什么

ruby-on-rails - Rails 自定义电子邮件验证器 |黑名单

ruby-on-rails - 为什么 REDIS key 总是过期?

ruby HttpClient 库在响应持久连接后关闭套接字?

bash - 从 .bash_profile 获取目录中的所有文件

ruby-on-rails - 如果条件 block 很短,则使用三元

php - 为什么要使用两个(或更多)数据库而不是一个?

python - 将 python 脚本打包成可执行文件的最佳用户友好方式是什么?

linux - 将格式从 %Y%m%d%H%M% 更改为另一种格式

linux - 如何使用 linux shell 脚本删除 ^[ 和文件中的所有转义序列