0

Ruby の学習を始めたばかりで、ユーザーから 2 つの数値を受け取って乗算する簡単なプログラムを試していました。

これが私のコードです:

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 を介して2 つの数値を読み取り、後でコードに示すように整数に変換しています。

しかし、数値データ型として直接受け入れる方法はありますか?

4

4 に答える 4

1

scanメソッドを使用して、文字列に数値が含まれている場合にのみ何かを返すことができます。これはそれを行う1つの方法です:

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

数字が入力されていない場合、コードは0を返します。それ以外の場合、コードは数字を返します。

于 2012-10-04T12:02:10.993 に答える
1

あなたがすることができます:

i1 = gets.to_i
i2 = gets.to_i
于 2012-10-04T11:44:46.517 に答える
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 に答える
0

scanfモジュールを見てください。これは c の機能に似ています。私はそれがあなたがするよりも効率的であるべきだと思います。

于 2012-10-04T11:47:54.370 に答える