2016-02-19 9 views
0

Я пытаюсь принять first_name, middle name и фамилию пользователя, а затем отобразить сокращенно первое, среднее имя пользователя с неизменной фамилией. Я написал следующий код и получил доступ к одному пользователю.Как вставить и получить имя нескольких пользователей

h = Hash.new 
puts "Enter the first name for user" 
h["First_name"] = gets.capitalize 
puts "Enter the Middle name for user" 
h["Middle_name"] = gets.capitalize 
puts "Enter the Last name for user" 
h["Last_name"]= gets.capitalize 
puts "The name entered is #{h["First_name"][0]}" + 
"." + "#{h["Middle_name"][0]}" + "." + "#{h["Last_name"]}" 

Я хочу, чтобы это произошло для пяти пользователей несколько раз и отобразилось все пять имен в конце. Может ли кто-нибудь помочь мне найти решение этой проблемы?

ответ

0

Положите все это в массиве (и конец блока с h):

a = Array.new(5) do 
    h = Hash.new 
    puts "Enter the first name for user" 
    h["First_name"] = gets.capitalize 
    puts "Enter the Middle name for user" 
    h["Middle_name"] = gets.capitalize 
    puts "Enter the Last name for user" 
    h["Last_name"] = gets.capitalize 
    h 
end 

В конце концов, a будет иметь пять хэш вида у вас. Вы можете поставить chomp после каждого gets, чтобы избавиться от символа новой строки.

Вы можете печатать каждое имя, итерации свыше a.

a.each do |h| 
    puts "The name entered is " + h["First_name"][0] + 
    "." + h["Middle_name"][0] + "." + h["Last_name"] 
end 
+0

Да. Получил это ... ваше решение работает ... Большое вам спасибо @sawa –

Смежные вопросы