私はRubyに不慣れで、現在次のようないくつかの練習コードに取り組んでいます:
puts 'Hello there, Can you tell me your favourite number?'
num = gets.chomp
puts 'Your favourite number is ' + num + '?'
puts 'Well its not bad but ' + num * 10 + ' is literally 10 times better!'
ただし、このコードはnum変数のコピーを10個置くだけで、実際には数を乗算しないため、「num」変数を整数にする必要があると思いますか?私はこれで成功しなかったので、誰かが私が間違っているところを教えてもらえますか?
to_i
を使用している場合は、その前のchomp
は冗長です。だからあなたはできる:
puts 'Hello there, Can you tell me your favourite number?'
num = gets.to_i
puts 'Your favourite number is ' + num.to_s + '?'
puts 'Well its not bad but ' + (num * 10).to_s + ' is literally 10 times better!'
ただし、"#{}"
を気にする必要がないため、一般的にはto_s
を使用する方が優れており、実行速度が速く、見やすくなっています。メソッドString#+
は特に非常に低速です。
puts 'Hello there, Can you tell me your favourite number?'
num = gets.to_i
puts "Your favourite number is #{num}?"
puts "Well its not bad but #{num * 10} is literally 10 times better!"
使用 to_i
メソッドを使用して整数に変換します。つまり、これを変更します。
num = gets.chomp
これに:
num = gets.chomp.to_i
次のようにして、ユーザーが使用している数値が整数であることを確認することもできます。
num = Integer(gets.chomp)
しかし、ユーザーが文字や文字列などの入力を行った場合にエラーをキャッチする方法を作成する必要があります。使用する方が良いでしょう:
num = gets.chomp.to_i
ユーザーが別のタイプのデータを入力した場合、このテスト例でわかるように、numは0に等しくなります。
puts "give me a number:"
num = gets.chomp.to_i
if num >3
puts "#{num} es mayor a 3 "
else
puts "#{num} es menor a 3 o 3"
end
これは、そのスクリプトとの相互作用の例です。
give me a number:
sggd
0 es menor a 3 o 3
nil
これがあなたの主張をより明確にすることを願っています。
私はあなたと同じようなプログラムを書いた。これが最終的に適切に機能する方法です!私は好きな数を整数にする必要がありました。次に、次の行でnew_fav_numにfav_num +1の値を設定し、それを文字列に変換しました。その後、ユーザーに伝えたいreturnステートメントにコードをプラグインできます。最初のfav_numを文字列に変換するだけです。
puts "What is your favorite number?"
fav_num = gets.chomp.to_i
new_fav_num = (fav_num + 1).to_s
puts "Your favorite number is " + fav_num.to_s + ". That's not bad, but " +
new_fav_num + " is bigger and better!"
お役に立てれば。