Ruby输入不起作用(新手)

时间:2014-05-24 18:31:20

标签: ruby linux input

当我输入输入(n1,n2)并且控制台仍然请求我输入更多信息时会出现问题。

我的代码:

#!/usr/bin/env ruby

def Euclides(n1,n2)
    while n1 % n2 != 0
        aux = n1
        n1 = n2
        n2 = aux % n2
    end
    return n2
end

n1 = gets
n2 = gets
puts Euclides(n1,n2)

2 个答案:

答案 0 :(得分:1)

你的问题是你从gets获得的是一个字符串。将两个字符串传递给您的方法会导致无限循环,因为string1 % string2将始终返回string1(除非您在该字符串中有一些特殊语法,请参阅%文档以获取字符串。

要解决您的问题,您应该将字符串转换为整数:

n1 = gets.to_i
n2 = gets.to_i
puts Euclides(n1,n2)

答案 1 :(得分:0)

如果您的意思是并排放置输入。像:

n1, n2

尝试

n1, n2 = gets.split(/,/).map(&:rstrip)