Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby的while循环中删除字符串中的值_Ruby_String_While Loop - Fatal编程技术网

在Ruby的while循环中删除字符串中的值

在Ruby的while循环中删除字符串中的值,ruby,string,while-loop,Ruby,String,While Loop,所以我正在学习另一种新的语言,因为我的公司显然认为我们应该支持在阳光下可以想到的每一件事。下周我怀疑会有一份关于FORTRAN、自动化和穿孔卡的备忘录。但那既不是她也不是那里。我的问题是,我正在运行一个循环(在这个特殊的例子中是while循环),并让它从用户那里收集一个字符串。宠物的名字。此while循环将继续重复,直到用户将其打断。然而,第二次我开始收到Ruby的消息,告诉我这些值已经预先分配好了。当程序继续运行时,它实际上不会引起问题,但看起来不太好 有没有办法清除这些值,这样除了我想要的值

所以我正在学习另一种新的语言,因为我的公司显然认为我们应该支持在阳光下可以想到的每一件事。下周我怀疑会有一份关于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