【发布时间】:2016-06-27 14:53:48
【问题描述】:
我对以下代码有一些问题:
puts "Press a key"
key = STDIN.getc
puts key.class
puts "You have pressed #{key}"
puts key.class
while key != "f" do
case key
when "g"
puts "It's 'g'"
when "h"
puts "It's 'h'"
when "j"
puts "It's 'j'"
else
puts "You gave me #{key} -- I have no idea what to do with that."
end
puts "Press a key"
key = STDIN.getc
puts "You have pressed #{key}"
end
如果你输入 'f',它可以正常工作,但如果你按示例输入 'g',就会出现 2 个问题:
- “case when”运行所有情况,而不仅仅是 'g' char
- WHILE 循环中的 STDIN.getc 似乎被执行了 2 次,即使我只键入了一个字符。
错在哪里?
【问题讨论】:
标签: ruby