我也想做这样的事情.

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 或以下任何数字 它会告诉我"你是非法的"

推荐答案

欢迎使用StackOverflow.

#{}用于字符串内插,您在那里不需要它,否则语句不会像这样工作(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

See

Ruby相关问答推荐

Ruby;人;docs-使用\";?

在 Ruby 中,如何从派生类中重写同一方法的不同方法调用基类方法?

类 SpecificationPolicy 的超类不匹配

多线程期间的 MRI ruby​​ 内存访问特性

Ruby vs Scala - 各自的优缺点

Faraday中的timeout和open timeout是什么?

Ruby 将字符串转换为方法名

使用 Bundler 时,为什么要关心 RVM 的 Gemset 功能?

类中的 Ruby 类(或模块中的模块)

在 YAML 变量中包含 jekyll / liquid 模板数据?

为什么在Ruby中用空格分隔的两个字符串连接在一起?

`require': no such file to load in ruby

Jekyll - 找不到命令

无法对 ruby​​ 哈希使用点语法

Ruby中block和&block的区别

如何使用密码保护我的 /sidekiq 路由(即需要对 Sidekiq::Web 工具进行身份验证)?

获取Ruby中当前目录的父目录

Ruby - 无法修改冻结的字符串 (TypeError)

obj.nil?与 obj == nil

当我们导入 csv 数据时,如何消除UTF-8 中的无效字节序列