2016-11-07 75 views
0

有沒有辦法讓這個腳本只運行一次?用戶輸入是put語句打印出來的地方?用ruby中的不同實例多次打印用戶輸入

print "Which harmonic sums do you wish to calculate? " 
      sum = gets.to_i 

    def harmonic_sum(n) 
     (1..n).inject(Fraction.new(0,1)) {|r, i| r + Fraction.new(1,i) } 
    end  

    puts harmonic_sum(1) 
    puts harmonic_sum(2) 
    puts harmonic_sum(3) 
    puts harmonic_sum(4) 
    puts harmonic_sum(5) 

我將不得不作出一個局部變量,以便運行這是一個循環,如果是什麼樣的循環將我跑。我看到其他職位說while循環或for循環會工作,但哪一個會更好?

回答

2
1.upto(sum) do |n| 
    harmonic_sum(n) 
    end 
+0

請確保'把harmonic_sum(n)'而不是隻調用它! –