1
Я только начал изучать Ruby/Rails и пытаюсь написать программу, которая строит массив, а затем форматирует новый массив.Могу ли я построить массив с использованием цикла в Ruby?
Он работает до второго while
, и, если у меня уже есть массив, вторая часть работает. Я что-то скрываю?
chap = []
page = []
lineWidth = 80
x = 0
n = chap.length.to_i
puts 'chapter?'
chapter = gets.chomp
while chapter != ''
chap.push chapter
puts 'page?'
pg = gets.chomp
page.push pg
puts 'chapter?'
chapter = gets.chomp
end
puts ('Table of Contents').center lineWidth
puts ''
while x < n
puts ('Chapter ' + (x+1).to_s + ' ' + chap[x]).ljust(lineWidth/2) +(' page ' + page[x]).rjust(lineWidth/2)
x = x + 1
end
Благодарим за помощь!
длина 'n' вычисляется до фактического построения массива chap, поэтому x == n == 0. Переместите' n = chap.length.to_i' после первого времени. Также вам не нужно to_i – mastaBlasta
Как примечание о стиле, 'chapter! = ''' Не очень красиво. Лучше что-то вроде '! Chapter.empty?', Где вы сами тестируете 'chapter', а не сравниваете с другой строкой. 'x + = 1' также предпочтительнее' x = x + 1'. – tadman