Задавая пользователю несколько вопросов, используя метод Ruby gets.chomp - PullRequest
0 голосов
/ 24 марта 2019

Я очень новичок в Ruby и тренируюсь с пользовательским вводом.Я кодировал следующее, что позволяет пользователю непрерывно вводить имена учеников, пока они не нажмут на кнопку возврата дважды.После каждого ввода программа возвращает количество учеников в школе, а когда они закончили вводить данные навсегда, она распечатывает список учащихся и группу, в которой они находятся.

В данный момент группаявляется жестко запрограммированным, и я хочу изменить это так, чтобы я мог запрашивать как имя, так и когорту, при этом программа продолжает запрашивать эту информацию, пока пользователь не нажмет дважды.Любая помощь будет принята с благодарностью - спасибо :)

  puts "Please enter the names of the students"
  puts "To finish, just hit return twice"

  students = []

  name = gets.chomp

  while !name.empty? do 
    students << {name: name, cohort: cohort} 
    puts "Now we have #{students.count} students" 
    name = gets.chomp
  end
  students
end

def print_header
  puts "The students of this Academy".center(50)
  puts "-----------".center(50)
end

def print(students)
 students.each do |student, index|
   puts "#{student[:name]} #{student[:cohort]} cohort"
    end
 end
end

def print_footer(names)
  puts "Overall, we have #{names.count} great students".center(50)
end

students = input_students
print_header
print(students)
print_footer(students)

1 Ответ

0 голосов
/ 24 марта 2019

Вместо в то время как цикл, я бы предложил использовать loop do и break в случае, если name пуст (или также cohort):

loop do 
  puts "Please enter the names of the students"
  name = gets.chomp
  break if name.empty?
  puts "Please enter the cohort"
  cohort = gets.chomp
  # break if cohort.empty?
  students << {name: name, cohort: cohort} 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...