Techioz Blog

Rubyでコードを正しく書くにはどうすればよいでしょうか?それで正しい出力が生成されるでしょうか?

概要

そういうことをやってみたいです。

puts "Please write your age: "
age = gets.chomp

if #{age}<18 
puts "you are illegal"

else #{age}>18
puts "You are legal"
end

私が得る出力は次のとおりです:

「あなたの年齢を書いてください」 15. あなたは違法です あなたは合法です」

この

「あなたの年齢を書いてください 20 あなたは違法です あなたは合法です」

なぜ? そして、解決策は何ですか?

私が期待しているのはこれです 19歳以上と書くと「あなたは合法です」と表示されます 17 と書くと または以下の任意の番号 「あなたは違法です」と言われます

解決策

#{} は文字列補間に使用されますが、そこには必要ありません。また、else ステートメントはこのように機能しません (elsif は機能します)。文字列を整数に変換する必要もあります。次のように書くことができます:

puts "Please write your age: "
age = gets.chomp.to_i

if age > 18 # Since you want 19 or older. You could use age > 17 or age >= 18 if you actually meant 18 or older.
  puts "You are of legal age"
else
  puts "You are not of legal age"
end

Ruby の if と else について説明した記事を参照してください。