Ruby 如何通过在一行中写入同一个单词3次(单词&x2B;返回键,3次)来打破循环?
我必须通过连续三次输入同一个单词“再见”来打破循环,我没有主意了,我就是这样尝试的,但它不起作用: 测试:Ruby 如何通过在一行中写入同一个单词3次(单词&x2B;返回键,3次)来打破循环?,ruby,Ruby,我必须通过连续三次输入同一个单词“再见”来打破循环,我没有主意了,我就是这样尝试的,但它不起作用: 测试: elsif var == 'BYE' * 3 break 原代码: while true timeVar = rand(1930..1950) inputVar = gets.chomp if inputVar == inputVar.downcase puts ' HUH?! SPEAK UP SONNY!!! '
elsif var == 'BYE' * 3
break
原代码:
while true
timeVar = rand(1930..1950)
inputVar = gets.chomp
if inputVar == inputVar.downcase
puts ' HUH?! SPEAK UP SONNY!!! '
elsif inputVar == inputVar.upcase && inputVar != 'BYE'
puts 'NO, NOT SINCE ' + timeVar.to_s + ' !'
elsif inputVar == 'BYE'
break
end
end
以及实施的工作解决方案:
bye_count = 0
while bye_count < 3 do
time_grandma = rand(1930..1950)
input_var = gets.chomp
if input_var == "BYE" then
bye_count += 1
else
bye_count = 0
end
if input_var == input_var.downcase
puts ' HUH?!? SPEAK UP SONNY!!'
elsif input_var == input_var.upcase
puts ' NO, NOT SINCE ' + time_grandma.to_s + ' !'
end
end
bye\u count=0
当你数到3时,你要做什么
时间=兰德(1930年至1950年)
input_var=gets.chomp
如果输入值=再见,则
再见,计数+=1
其他的
再见,计数=0
结束
如果input_var==input_var.downcase
是吗?!?说出来,孩子
elsif input_var==input_var.upcase
将“不,不是因为”+time\u grandma.to\u s+“!”
结束
结束
调整代码,使其看起来像这样
bye_count = 0
while bye_count < 3 do
input_var = gets.chomp
# ...
if input_var == "BYE" then
bye_count += 1
else
bye_count = 0
end
end
bye\u count=0
当你数到3时,你要做什么
input_var=gets.chomp
# ...
如果输入值=再见,则
再见,计数+=1
其他的
再见,计数=0
结束
结束
调整代码,使其看起来像这样
bye_count = 0
while bye_count < 3 do
input_var = gets.chomp
# ...
if input_var == "BYE" then
bye_count += 1
else
bye_count = 0
end
end
bye\u count=0
当你数到3时,你要做什么
input_var=gets.chomp
# ...
如果输入值=再见,则
再见,计数+=1
其他的
再见,计数=0
结束
结束
不知道你的意思。你能提供这个循环的其余代码吗?好的,sry,我是新来的this@Horned您是希望在输入“BYEBYEBYE”时退出程序,还是希望在输入“BYE”+返回键三次时退出程序?您的意思是如果输入三次“BYE”(“BYE”+输入三次)或者您的意思是,如果只输入一次“bye-bye-bye”,那么变量名应该写在snake\u case
中。您不应该这样标记变量(通过var
后缀)。如果您决定稍后将变量提取到方法中,该怎么办?最好使用一个描述性的名称,如random\u year
。不确定你的意思。你能提供这个循环的其余代码吗?好的,sry,我是新来的this@Horned您是希望在输入“BYEBYEBYE”时退出程序,还是希望在输入“BYE”+返回键三次时退出程序?您的意思是如果输入三次“BYE”(“BYE”+输入三次)或者您的意思是,如果只输入一次“bye-bye-bye”,那么变量名应该写在snake\u case
中。您不应该这样标记变量(通过var
后缀)。如果您决定稍后将变量提取到方法中,该怎么办?最好使用一个描述性名称,比如random\u year
。我认为这需要一个else byte\u count=0来满足这个事实,那么它应该是连续3次再见,而不是总的3次(?)@HeikoRupp谢谢。我已经改变了。@Horned是最上面的箭橙色吗?您可能错误地单击了。无论如何,谢谢你接受。是的,我已经点击了最上面的箭头,当我看到-1时我也很惊讶,在以后发布之前运行你的代码是谨慎的。我认为这需要一个else byte_count=0来迎合这个事实,那么它应该是连续3次再见,而不是总的3次(?)@HeikoRupp谢谢你。我已经改变了。@Horned是最上面的箭橙色吗?您可能错误地单击了。无论如何,谢谢你接受。是的,我已经点击了最上面的箭头,当我看到-1时我也很惊讶,在以后发布之前运行你的代码是明智的。