【发布时间】:2018-10-05 15:13:08
【问题描述】:
command = " "
while command != "bye"
puts command
command = gets.chomp
end
puts "Come again soon!"
这个 while 循环在 VS 代码编辑器中不能正常运行。即使输入了退出命令,循环也会持续运行。在 irb 中测试 != 并且它应该有效。这是编辑器的一个奇怪的方面。它让我想把头发扯下来!求救
【问题讨论】:
-
只是好奇:当你输入“再见”时它会打印什么?
-
它只是打印“再见”,所以当它应该退出并说“马上再来”时,它会继续循环下去
-
似乎 \r 或 \n 或其他换行符被添加到字符串的末尾,而不是 chomped。能否将
puts command替换为puts command, command.length来测试这个版本? -
当使用 [command.length] 时它会返回一个额外的字符长度,那么它应该即 hello 返回 6 而不是 5 嗯?为什么会发生这种情况?
-
嗯,它是 VisualStudio,所以我假设您使用的是 Windows。它有一个特殊的换行符号,不同于 Unix 系统。但是它必须由
chomp正常处理,不知道为什么 VS 终端会有不同的处理方式。不管怎样,command[-1].ord电话会告诉你那个符号的 ASCII 码,你可以用谷歌搜索它是什么。
标签: ruby visual-studio irb