Ruby 在同一行上打印循环结果,而不是在每次迭代中打印新行
我希望我的代码只在一行上打印Ruby 在同一行上打印循环结果,而不是在每次迭代中打印新行,ruby,Ruby,我希望我的代码只在一行上打印dully,但它会这样打印: silly silly silly def read_string gets.chomp end 我想要这个: silly silly silly 这是我的代码: def print_silly_name () i = 0 while ( i < 60 ) puts "silly" i += 1 end end de
dully
,但它会这样打印:
silly
silly
silly
def read_string
gets.chomp
end
我想要这个:
silly silly silly
这是我的代码:
def print_silly_name ()
i = 0
while ( i < 60 )
puts "silly"
i += 1
end
end
def main
name = read_string('Please enter your name: ')
if ( name == "benyamin") or ( name == "jack" )
puts " #{name} that is a nice name"
else
puts print_silly_name
end
end
main
def打印名称()
i=0
而(i<60)
把“愚蠢的”
i+=1
结束
结束
def总管
name=读取字符串('请输入您的姓名:')
如果(姓名==“benyamin”)或(姓名==“jack”)
将“#{name}这是个好名字”
其他的
把你的名字打印出来
结束
结束
主要的
你的问题不是很清楚,但我想你不会是这样的:
def print_silly_name
puts Array.new(60, 'silly').join(' ')
end
def main
name = read_string('Please enter your name: ')
if ( name == "benyamin") || ( name == "jack" )
puts " #{name} that is a nice name"
else
print_silly_name
end
end
main
用这个打印60次
def打印名称()
将“愚蠢”改为*60
结束
查看您的代码,您有一些问题:
put
,但在您的案例中应该使用print
李>
2.您正在调用代码中未定义的#read_string
方法。您要做的是将其替换为get.chomp
,或者像这样定义#read_string
方法:
silly
silly
silly
def read_string
gets.chomp
end
3.正如Stefan所提到的,您使用的是或,这可能不是您在这里要找的()您最好使用|
操作符
修复这些错误将为我们带来代码的工作版本:
def print_silly_name_60_times
60.times do
print "silly "
end
end
def main
name = gets.chomp
if ( name == "benyamin") || ( name == "jack" )
puts " #{name} that is a nice name."
else
print_silly_name_60_times
end
end
main
在清理了一些东西并使其更加紧凑后,我们得到:
def print_silly_name_60_times
60.times{print "silly "}
end
def main
name = gets.chomp
%w(benyamin jack).include?(name) ? (puts " #{name} that is a nice name.") : print_silly_name_60_times
end
main
如果要使用打印
,而不是放置
,则应使用|
而不是或
。后者是一个控制流操作符,可能不是您想要的。它甚至不打印任何内容。你只是在做一个字符串,我知道^^我适应了它的功能:put print\u stuly\u name