在Ruby的while循环中删除字符串中的值
所以我正在学习另一种新的语言,因为我的公司显然认为我们应该支持在阳光下可以想到的每一件事。下周我怀疑会有一份关于FORTRAN、自动化和穿孔卡的备忘录。但那既不是她也不是那里。我的问题是,我正在运行一个循环(在这个特殊的例子中是while循环),并让它从用户那里收集一个字符串。宠物的名字。此while循环将继续重复,直到用户将其打断。然而,第二次我开始收到Ruby的消息,告诉我这些值已经预先分配好了。当程序继续运行时,它实际上不会引起问题,但看起来不太好 有没有办法清除这些值,这样除了我想要的值之外,所有的值都会返回到零,或者最好是把所有的值都放在函数中,这样就不会出现反流 样本:在Ruby的while循环中删除字符串中的值,ruby,string,while-loop,Ruby,String,While Loop,所以我正在学习另一种新的语言,因为我的公司显然认为我们应该支持在阳光下可以想到的每一件事。下周我怀疑会有一份关于FORTRAN、自动化和穿孔卡的备忘录。但那既不是她也不是那里。我的问题是,我正在运行一个循环(在这个特殊的例子中是while循环),并让它从用户那里收集一个字符串。宠物的名字。此while循环将继续重复,直到用户将其打断。然而,第二次我开始收到Ruby的消息,告诉我这些值已经预先分配好了。当程序继续运行时,它实际上不会引起问题,但看起来不太好 有没有办法清除这些值,这样除了我想要的值
while moonies > 0
print "Would you like to punch a kitty? y or n"
y = gets()
if y = 'y'
print "Which kitty would you like to punch?"
slap = gets()
if slap == Tom
print "You spent 50 dollars punching a kitten."
....
else
print "Is there something else you'd like to kick or did you want to spend no money today?"
等等等等
问题是当它返回到y时,消息开始出现。谢谢你的帮助。嗯
if y = 'y'
是一种赋值,而不是相等的比较。y='y'总是正确的。应该是
if y == "y\n" #note the newline, you got it from "gets"
这是一个比较,但Tom是一个常量(它以大写字母开头)。我猜你在循环中的某个地方给它重新赋值。鲁比对此抱怨不已。新线的问题将再次出现。slap=gets.chomp会把它处理掉的。实际上这只是一个打字错误,应该是'Tom'和y='y'是一样的,就像刚才举了一个简单的例子一样。抱歉..chomp将只解析响应。我需要删除它,以便字符串在重新启动时看起来从未包含任何内容。我有没有办法做一个y=nil?y=nil就行了;if gets.chomp=='y'也会起作用(所以不要分配任何内容)。
if slap == Tom