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