大家看看关于ruby的gets
代码如下:cc=gets
if cc==1
puts "Try again"
elsif cc==11
puts "You lose"
else
puts "Enter anumber"
end
输出结果:
应该会判断cc的输入值然后按照if的判断做出不同的puts输出才对,但是执行后发现,对gets的赋值if好像根本就没感觉到,无论你键盘给cc赋任何值,结果都是打印出Enter anumber。
为什么? cc=gets
cc=cc.chomp.to_f
if cc==1 then
puts "try again"
elsif cc==11 then
puts "you lose"
else puts "Enter a number"
end cc = gets.to_i
puts "Try again" if cc==1
puts "You lose" if cc==11
puts "Enter a number" if cc != 11 && cc != 1 因为gets返回值是string或nil,你得转换。 gets的结果含有一个换行符,即使做字串比较也需要小心
irb(main):001:0> puts gets == 1
1
false
=> nil
irb(main):002:0> puts gets.strip == 1
1
false
=> nil
irb(main):003:0> puts gets.strip.to_i == 1
1
true
=> nil
irb(main):004:0> puts gets == '1'
1
false
=> nil
irb(main):005:0> puts gets.strip == '1'
1
true
=> nil :em03: :em03: :em03: :) :) :) :) :) :em03: :lol: :lol: :shock: :wink: :wink: :wink: :em03: :em03: :em03:
页:
[1]