Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 如何通过在一行中写入同一个单词3次(单词&x2B;返回键,3次)来打破循环?_Ruby - Fatal编程技术网

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时我也很惊讶,在以后发布之前运行你的代码是明智的。