2012-04-05 9 views
1

単純なRubyプログラムをここに書き込もうとしています。私はプログラムがユーザーの好きな番号を聞いて、それから1つ大きい新しい好きな番号を提案するようにしようとしています。下のコードで何が間違っていますか?単純なRubyプログラム...必要なヘルプ

puts "hey, whats your favorite number?" 

favnumber = gets.chomp 

newfavnumber = favnumber.to_i + 1 

puts "how about " + newfavnumber "?" 
+3

これは簡単ですが、将来は_errorメッセージも含めておく方がよいでしょう。 – sarnold

答えて

1

あなたはnewfavnumberと、文字列に変換した後+を逃しています。

puts "how about " + newfavnumber.to_s + "?" 
+1

何か不足していますか? 'Fixnum'を' String'に追加しますか?私はあなたがこれをしなければならないと思います:#{newfavnumber}はどうですか? " – Linuxios

+0

@ Linux_iOS.rb.cpp.c.lisp.m.sh:いいえ、Rubyについてよく分かりません。私はとにかくそれを入れようとしていたが、...私はしなかった。一口。 – Ryan

2
puts "how about " + newfavnumber "?" 

まず第一に、あなたはおそらくそこ"?"+を望んでいました。これが今書かれている方法では、puts("how about " + newfavnumber("?"))と解釈されます。すなわち、あなたが望んでいないのは明らかにnewfavnumberという関数を呼び出しています。

puts "how about " + newfavnumber + "?"に変更した場合、それはおそらく動作しません。newfavnumberは数字で、"how about "は文字列です。ルビーでは、文字列に数字を追加することはできません。これを修正するにはto_snewfavnumberに電話して文字列に変換できます。

これを書き込むより良い方法は、文字列補間を使用することです:puts "how about #{newfavnumber}?"。この方法でto_sに電話する必要はありません。#{}内に任意のタイプを使用できるためです。

+0

素晴らしい、非常に有用な男。どうもありがとう。 – bclayman

+0

また、どのように文字列間にスペースを入れますか? firstnameとlastnameを定義すると、firstname + lastnameに「firstnamelastname」の代わりに「firstname lastname」と表示されるようにするにはどうすればよいですか?もう一度ありがとう。 – bclayman

+0

@Mariogs 'puts"#{firstname}#{lastname} "' – sepp2k

関連する問題