coffee_45 发表于 2009-02-09 11:48

大家看看关于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。

为什么?

laohuanggua 发表于 2009-05-15 02:02

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

jhsea3do 发表于 2009-06-04 09:52

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

shucho 发表于 2009-06-04 12:44

因为gets返回值是string或nil,你得转换。

jhsea3do 发表于 2009-06-04 13:18

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

找回希望 发表于 2009-07-02 15:21

:em03: :em03: :em03:

找回希望 发表于 2009-07-02 15:21

:) :) :) :) :)

找回希望 发表于 2009-07-02 15:22

:em03: :lol: :lol: :shock:

找回希望 发表于 2009-07-02 15:23

:wink: :wink: :wink:

找回希望 发表于 2009-07-02 15:25

:em03: :em03: :em03:
页: [1]
查看完整版本: 大家看看关于ruby的gets