Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 - Fatal编程技术网

Ruby while循环与数学

Ruby while循环与数学,ruby,Ruby,我正在一个关于“while”循环的实验课上工作。这就是目标: 创建一个变量并将其设置为true 而您刚才创建的变量为true 提示用户输入号码 读入数字 计算两倍于这个数字 显示双倍的数字 如果用户希望再次访问,则提示用户 读那篇课文 如果文本输入为“n”,则将true变量设置为false 这是我的代码: puts "Enter a number" x = Float(gets.chomp()) product = x * 2 puts "Double your number is" pu

我正在一个关于“while”循环的实验课上工作。这就是目标:

  • 创建一个变量并将其设置为true
  • 而您刚才创建的变量为true
  • 提示用户输入号码
  • 读入数字
  • 计算两倍于这个数字
  • 显示双倍的数字
  • 如果用户希望再次访问,则提示用户
  • 读那篇课文
  • 如果文本输入为“n”,则将true变量设置为false
这是我的代码:

puts "Enter a number"
x = Float(gets.chomp())

product = x * 2
puts "Double your number is"
puts product

while
  puts "Go again   y/n?"
  answer = gets.chomp
  if answer != 'y'
  end
end
说明似乎很清楚,但我不明白如何将其转化为代码


任何修改都会有所帮助。

您需要有一个布尔标志来检查每个循环的while级别:

again = true

while again
  puts "Enter a number "
  x = Float(gets.chomp())

  product = x * 2
  puts "Double your number is"
  puts product 

  puts "Go again y/n? "

  again = gets.chomp != 'n'
end

提示#1:“创建一个变量并将其设置为true。”提示#2:“当变量为true时”。请参阅如何正确编写while循环。提示#3:所有“while the variable is true”应该发生的事情都需要进入while循环。请注意,在Ruby中,样式通常是
x=gets.chomp.to_f
其中省略了空参数列表,并使用
Float()等强制转换“斯特凡”在C++、PHP和其他人中编写“代码>(浮点)x<代码> >,其中代码<代码> x>代码>转换为<代码>浮点。当然,有些人认为Ruby中的等价物应该是
Float(x)
,因为就语法而言,这是最接近的,但实际上是
x。换句话说,任何能够处理
.to\f
调用的对象都是可接受的值,而不一定是能够很好地处理
Float
的对象。可以始终
循环执行。。。结束
,然后在回答为“y”时中断。但是需求需要一个布尔变量。
if answer='n'
将与需求更紧密地匹配。如果是这样的话,可以再次执行
=answer='n'
,在这种情况下不需要
if
。这是一个XY问题,所以不要害怕找到问题的根源。@tadman,好提示!更新。PS:它应该检查
!='n'
再次循环。