擦除程序以读取用户接受的号码

时间:2012-10-04 11:36:13

标签: ruby

我刚刚开始学习ruby,我正在尝试一个简单的程序来接受用户的两个数字并乘以。

这是我的代码:

def mult(i1,i2)
        res = i1.to_i * i2.to_i
        puts res
end

puts "enter 1st no to multiply"

i1 = gets

puts "enter 2nd no to multiply"

i2 = gets

mult(i1,i2)

这里我通过获取读取两个数字,它接受为字符串,之后我将转换为整数,如代码所示。

但有没有办法直接接受数字数据类型?

4 个答案:

答案 0 :(得分:1)

你可以这样做:

i1 = gets.to_i
i2 = gets.to_i

答案 1 :(得分:1)

只有当字符串中包含数字时,才能使用scan方法返回内容。这是一种方法:

gets.scan(/[0-9]/).join.to_i

如果没有输入数字,代码将返回0.否则,它将返回数字。

答案 2 :(得分:0)

查看scanf模块。它类似于c功能。我认为它应该比你做的更有效率。

答案 3 :(得分:0)

如果您了解C,您可能会喜欢scanf。它不是核心语言。在IRB中尝试这个:

?> require 'scanf'
=> true

?> numberX = scanf("%d")
?> 345
=> [345]
#scanf return an array    


?> numberX
=> [345]

?> numberX.at(0)
=> 345