案例陈述不起作用

时间:2018-06-11 12:05:54

标签: ruby if-statement case

我正在从“编程Ruby,实用程序员(2005年第2期)”学习Ruby,我陷入了Case声明章节。 所以我从我的版本中复制粘贴一些代码:

dd($request)

因此,无论我放的是哪一年,输出都是“爵士乐”......我的工作不正确?

1 个答案:

答案 0 :(得分:4)

gets.chomp返回一个字符串,您将其与整数进行比较。

分配后,您可以检查ask

ask = gets.chomp
p ask

当您运行脚本并输入一个数字(例如1940)时,您应该会在终端中看到"1940"。数字周围的引号显示变量包含字符串,而不是数字。 (仅供参考,此处不使用puts,因为它不会显示引号。)

正如mudasobwa在评论中写道,解决这个问题的方法是在比较之前将输入转换为数字:

ask = gets.chomp.to_i

如果再次添加p ask,您现在应该看到只有号码打印到终端,而没有任何"围绕它。这表明变量包含一个整数。