3

这是一段代码:

def add(a, b) 
  a + b;
end

print "Tell number 1 : "
number1 = gets.to_f

print "and number 2 : "
number2 = gets.to_f

puts "#{number1}+#{number2} = " , add(number1, number2) , "\n"`

当我运行它时,我的结果分布在几行:

C:\Users\Filip>ruby ext1.rb
告诉数字 1 : 2
和数字 2 : 3
3.0+3.0 =
5.0


C:\用户\菲利普>

为什么不puts()打印在一行中,如何将输出保持在一行?

4

3 回答 3

6

gets()包括换行符。将其替换为gets.strip更新:你更新了你的代码,所以如果你喜欢使用浮动,这不再相关。)

puts()为尚未以换行符结尾的每个参数添加一个换行符。您的代码相当于:

print "#{number1}+#{number2} = ", "\n",
      add(number1, number2) , "\n",
      "\n"

您可以替换putsprint

print "#{number1}+#{number2} = " , add(number1, number2) , "\n"`

或更好:

puts "#{number1}+#{number2} = #{add(number1, number2)}"
于 2013-04-12T23:43:21.927 回答
2

因为puts打印一个字符串,后跟一个换行符。如果您不想要换行符,请print改用。

于 2013-04-12T23:42:22.603 回答
2

Puts 在输出的末尾添加一个换行符。打印没有。尝试打印。

http://ruby-doc.org/core-2.0/IO.html#method-i-puts

您可能还想替换getsgets.chomp.

puts "After entering something, you can see the the 'New Line': "
a = gets
print a

puts "After entering something, you can't see the the 'New Line': "
a = gets.chomp
print a
于 2013-04-12T23:42:25.267 回答