ruby 脚本在调用 class 方法时冻结

ruby script freezes when calling class method

我有这个程序,我是 运行 来自命令行的,在这个 method.This 方法工作后冻结,但最后它冻结了,我留下了一个不断闪烁的光标.

def self.chooseteams(numberofteams)
  i=1
  while i<numberofteams
    puts "choose a team"
    team=gets.chomp
    @@c<<team
    i+=1
  end
end

然后程序卡住,无法调用下一个方法,is.It本应执行其功能,当条件满足时,传递给下一个method.My猜测是陷入无限循环,但是,我看不到它!

def self.secondfixer(numberofteams)
  until @@listofDrawnTeams.length==numberofteams do 
    firstPick = @@c.sample
    @@listofDrawnTeams<<firstPick
    @@listofDrawnTeams.uniq!
  end
end

方法都在程序结束时调用

Genfix.gener(64)
Genfix.fixer(64)
Genfix.chooseteams(32)
Genfix.secondfixer(32)
Genfix.fixer(32)

在您的方法 secondfixer 中,如果您有重复的团队,您的 until 循环可能永远不会完成。

使用 @@ 变量真的很奇怪 - 在 ruby 编程中很少使用它。