当打印带有变量的数组时,它打印单个答案,而不是全部

时间:2018-11-04 02:07:05

标签: arrays ruby string

这是一个用于保存人的年龄和姓氏的程序:

E = Array.new(10)
A = Array.new(10)
for i in(0..9)
  puts "¿Cúal es tu edad?"
  edad = gets.chomp
  E[i] = edad
  puts "¿Cúal es tu apellido?"
  apellido = gets.chomp
  A[i] = apellido
end
 gets
for m in(0..9)
  puts "Apellido es " + A.to_s + " tengo " + E.to_s + " años. "
end
gets

它打印:

Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.

当我引入10和10个变量并打印它们时,它将打印所有信息,而不是1和1。它将同时显示所有信息。

1 个答案:

答案 0 :(得分:0)

您应该将其中一行更改为,以便可以按索引访问数组元素(但不要将大写字母用作变量名):

puts "Apellido es " + A[m].to_s + " tengo " + E[m].to_s + " años. "

但是我建议使您的代码更加“ Rubyish”,就像这样:

people = Array.new() # initializa an array
10.times do |n|
  person = {} # initialize a hash
  # puts "¿Cúal es tu edad?"
  person[:edad] = 20 + n # stores into the hash, here use gets for user input instead of 20 + n
  # puts "¿Cúal es tu apellido?"
  person[:apellido] = 'Pedro' + n.to_s # stores into the hash, here use gets for user input instead of 'Pedro' + n.to_s
  people << person # insert the person into people
end
people.each do |person|
  puts "Apellido es #{person[:apellido]} tengo #{person[:edad]} años." # string interpolation
end
相关问题