def main()
count = 1
while count <= 10
puts "#{count}" " Enter integer 1: "
int1=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 2: "
int2=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 3: "
int3=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 4: "
int4=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 5: "
int5=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 6: "
int6=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 7: "
int7=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 8: "
int8=gets.chomp.to_i
count = count 1
puts "#{count}" " Enter integer 9: "
int9=gets.chomp.to_i
count = count 1
puts "#{count}" " 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()
我在 ruby?? 上做了一個程式,提示用戶輸入一個數字 10 次并將所有輸入的數字相加。唯一的問題是我的代碼依賴于出現在該行之前的相應行的數字。例如,第一個提示是“1 Enter integer 1:”,而我的目標是“Enter integer 1:”。
我遇到的另一個問題是我不知道如何使輸入與提示顯示在同一行。它出現在一個新行上,例如“1 Enter integer 1: while I want it is”1 Enter integer 1: 156" 1"
謝謝你。
uj5u.com熱心網友回復:
ruby REPL irb 是一次一行的,因此您無法在標準環境中的同一行上獲取輸入。(當然也可以使用其他方法,最多包括一個完整的 Rails 應用程式!當然,這遠遠超出您的預期。)
不過,要解決您的主要問題,請考慮使用陣列來收集您的輸入。然后,您可以將代碼相當大地壓縮為以下內容:
array = []
for i in 1..10 do
puts "Enter integer #{i}:"
array.push(gets.to_i)
end
sum = array.sum
如果您不需要向用戶提示他們輸入的數字的計數器,您可以像這樣進一步簡化:
array = []
10.times do
puts "Enter integer:"
array.push(gets.to_i)
end
sum = array.sum
uj5u.com熱心網友回復:
sum = 0
(1..10).each do |i|
print "#{i} Enter integer: "
sum = gets.chomp.to_i
end
puts "Sum is " sum.to_s
puts將在輸出中添加換行符,print不會。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314055.html
下一篇:如何對ruby??陣列進行分組
