0

我刚开始学习 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)

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

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

4

4 回答 4

1

你可以这样做:

i1 = gets.to_i
i2 = gets.to_i
于 2012-10-04T11:44:46.517 回答
1

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

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

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

于 2012-10-04T12:02:10.993 回答
0

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

于 2012-10-04T11:47:54.370 回答
0

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

?> require 'scanf'
=> true

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


?> numberX
=> [345]

?> numberX.at(0)
=> 345
于 2012-10-04T11:50:10.467 回答