我不理解while true
,以及name = gets(',').chomp(',')
及其关系。对我来说,它似乎是一个无限循环。有人会解释这个吗?
print "Enter your some more names separated by commas: "
while true
name = gets(',').chomp(',')
puts "Hello #{name}"
end
答案 0 :(得分:1)
是一个无限循环。这个程序永远不会结束(除了它会在某些输入上崩溃)。打破它:
while true
这是一个while循环,其条件始终为true,因此它将永远循环到代码end
之上。
name = gets(',')
请参阅documentation for gets。如果你直接运行这个程序,它将等待STDIN
(控制台/终端)上的“输入”行。输入将被读取到记录分隔符,即“,”,结果将分配给变量name
。
.chomp(',')
chomp
是一个method on String,它从字符串的末尾删除记录分隔符(在这种情况下,再次,',')。
puts "Hello #{name}"
这将打印字符串“Hello#{name}”,并将name
变量的值插入到#{}占位符中。
end
这结束了while循环。
如果您运行此程序并输入“mary,angela,andy”并按Enter键,它将:
chomp
“,”放在最后,并将“mary”指定给name
变量。如果您输入“foo”并按Enter键,它将:
chomp
“结束”,等等...... 所以这是一个非常糟糕的程序,考虑到它表面上正在尝试做什么,但你有它。