作者SansWord (是你)
看板Ruby
标题Re: [问题] case比较数字大小
时间Sat Apr 16 06:32:00 2011
※ 引述《BM0108 (冲)》之铭言:
: 环境:
: ruby 1.8.7 on windows
: 状况:
: 各位前辈好,我是今天刚开始学ruby的新手
: 我在练习case功能时遇到一些小trouble
: 我想要从命令列读入3个数字,然後判断是正数、负数抑或是0
: ================
: code:
: list = []
: for i in 0..2
: list[i]=ARGV[i].to_i
: case list[i]
: when <0
: puts "positive"
: when >0
: puts "negtive"
: else
: puts "it's zero"
: end
: end
: command line:
: D:\test>ruby array.rb 3 -9 0
: array.rb:7: syntax error, unexpected '<'
: when <0
: ^
: array.rb:9: syntax error, unexpected kWHEN, expecting kEND
: when >0
: ^
: array.rb:11: syntax error, unexpected kELSE, expecting kEND
: array.rb:14: syntax error, unexpected kEND, expecting $end
: ===========================
: 我有试着在when後面加上list[i]
: when list[i]>0
: when list[i]<0
: 这样不会error,但是不论输入啥,程式永远都会跑else("it's zero")
: 请问问题点在哪?
: 谢谢!
我想了一下如果要用case写那怎麽写比较好
後来觉得这样应该语意没问题,只是可能会很繁琐:
case list[i] > 0
when true
puts "positive"
when false
case list[i] < 0
when true
puts "negtive"
when false
puts "it's zero"
end
end
这样语意就没问题了,可是看起来很丑。
有人想到更好的方法吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.193.67.182