Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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——我有我喜欢的代码,但我希望它能够循环,直到其中一个条件为真_Ruby_Loops - Fatal编程技术网

Ruby——我有我喜欢的代码,但我希望它能够循环,直到其中一个条件为真

Ruby——我有我喜欢的代码,但我希望它能够循环,直到其中一个条件为真,ruby,loops,Ruby,Loops,所以我试图理解ruby中的循环函数。我有一段代码可以完成我想要它做的事情。但是我想循环以math变量开始的部分,直到满足其中一个条件。我已经更新了这个,以显示我尝试过的一种方式。仔细看了一遍()但我不理解这个过程。我对这真的很陌生。如果你有我可以参考的资源,那就太棒了。如果您有一个解决方案,其中有一些关于为什么它工作得更好的提示。这就是我尝试过的。这可能是非常糟糕的 puts "Welcome to math.rb!" puts "Enter a number!&q

所以我试图理解ruby中的循环函数。我有一段代码可以完成我想要它做的事情。但是我想循环以math变量开始的部分,直到满足其中一个条件。我已经更新了这个,以显示我尝试过的一种方式。仔细看了一遍()但我不理解这个过程。我对这真的很陌生。如果你有我可以参考的资源,那就太棒了。如果您有一个解决方案,其中有一些关于为什么它工作得更好的提示。这就是我尝试过的。这可能是非常糟糕的

puts "Welcome to math.rb!"
puts "Enter a number!"
     user = gets.to_i
puts "Enter another number!"
    user2 = gets.to_i
puts "What would you like to do with your number?"
math = gets.chomp.downcase
until math == ["add", "subtract", "multiply"]
case math
when "add"
    puts user + user2
when "subtract"
    puts user - user2
when "multiply"
    puts user * user2
else
    puts "I don't understand! Type a command like:
-add
-subtract
-multiply"
end

我猜您正在构建类似命令行的工具,对吗? 那么,你能用什么

循环执行#循环开始
数学=get.chomp.downcase
案例数学
当“添加”时
放置用户+用户2
当“减法”时
放置用户-user2
当“乘”
放置用户*user2
何时“退出”
break#这是从循环中断的条件
其他的
放置“我不明白!键入如下命令:\n-add\n-subtract\n-multiply”
结束
结束

我还没有尝试运行它,请告诉我它是否有效。

使用运算符在代码周围放置一个无限循环。将
next
放在“坏”条件之后,返回循环的开始。在所有其他情况下,代码在无限循环的
结束
之前到达最后的
中断
操作符,从而导致循环退出。如果您不需要重用
math
变量,您可以将其完全去掉。这里它只使用一次,所以我删除了它,取而代之的是在
case
语句中直接计算
gets.chomp.downcase
,而不需要临时变量

#!/usr/bin/env ruby

puts "Welcome to math.rb!"
puts "Enter a number!"
     user = gets.to_i
puts "Enter another number!"
    user2 = gets.to_i
puts "What would you like to do with your number?"

loop do
  case gets.chomp.downcase
  when "add"
    puts user + user2
  when "subtract"
    puts user - user2
  when "multiply"
    puts user * user2
  else
    puts "I don't understand! Type a command like:
-add     
-subtract               
-multiply"
    next
  end
  break
end

另请参见:

loop
是在Ruby中创建无限循环的最普遍和最普遍的方法:

循环
是一种内核方法,它采用
,在无限循环中引入一个新的局部变量范围。这与
while true
无限循环不同,无限循环不引入新的作用域。因此,
while true
可能会将变量泄漏到循环之外,这可能是意外的,并会在以后导致微妙的错误:

“我想循环它”所以循环它。你的代码中根本没有循环。老实说,这就是我被卡住的地方。我尝试了多种方法让代码的下半部分循环。我不清楚如何实施它。我整晚都在读博客和指南。我的眼睛交叉了。我已经尝试了多种方法让代码的下半部分循环“好吧,给我们看看其中的一种。更新了!这是我试过的一件事。但我现在无法理解。你错过了一个
结尾
。谢谢你跳到这里来。这对我现在的处境不太合适。或者我错过了什么。我将分享我的完整代码,以澄清我在这里试图做什么。但是我忘记了\n用于添加行的命令。谢谢你!我没有意识到休息必须在每一个“良好”状态之后!谢谢感谢@CarySwoveland对改进此代码的建议。