如何修改Ruby代码去除提示符前的行号并让输入与提示同处一行
Ruby代码修改方案
问题原因解析
- 问题1(前置计数多余):原有代码的输出语句中主动拼接了
#{count}变量,所以会把计数数字输出在提示符前,直接删除该部分即可。 - 问题2(输入自动换行):Ruby的
puts方法输出内容后会默认追加换行符,导致输入光标跳到下一行,将puts替换为不会自动加换行的print方法即可解决。
直接修复原有问题的代码
def main() count = 1 while count <= 10 print "Enter integer 1: " int1=gets.chomp.to_i count = count + 1 print "Enter integer 2: " int2=gets.chomp.to_i count = count + 1 print "Enter integer 3: " int3=gets.chomp.to_i count = count + 1 print "Enter integer 4: " int4=gets.chomp.to_i count = count + 1 print "Enter integer 5: " int5=gets.chomp.to_i count = count + 1 print "Enter integer 6: " int6=gets.chomp.to_i count = count + 1 print "Enter integer 7: " int7=gets.chomp.to_i count = count + 1 print "Enter integer 8: " int8=gets.chomp.to_i count = count + 1 print "Enter integer 9: " int9=gets.chomp.to_i count = count + 1 print "Enter integer 10: " int10=gets.chomp.to_i count = count + 1 sum=int1+int2+int3+int4+int5+int6+int7+int8+int9+int10 end puts "Total is: #{sum}" end main()
优化后更简洁的实现
原有代码的循环逻辑没有起到简化作用,可直接在循环内完成输入和累加,不需要定义10个单独的变量,代码更精简易维护:
def main sum = 0 (1..10).each do |i| print "Enter integer #{i}: " sum += gets.chomp.to_i end puts "Total is: #{sum}" end main
内容的提问来源于stack exchange,提问作者Eyeofthebeholder
相关产品推荐
相关产品推荐

