🗒 Задача¶
Разрабатываем приложение “Картотека”. Пользователь вводит имя и пол человека. Данные картотеки хранятся в списке.
Человека описывает класс, содержащий имя и пол. Пол должен храниться в enum. После ввода 5 человек, список выводится в консоль.
При старте приложения печатается инструкция в каком формате вводить имя и пол (и какие значения полов доступны).
❌ Ошибки¶
✏️ Комментарии¶
Предлагаю еще добавить объект ERROR или UNDEFINDED. чтобы предусмотреть варианты для обработки ошибки именно
По идее у нас не может быть создан объект без данных, тогда прописывание пустых значений по умолчанию - точно уместно?
Перенос получился не очень читаемый. В таких ситуациях лучше символ "равно", которое возвращает значение, писать с новой строки
Классы отбиваются пустой строкой и тут небольшой недочет с форматированием. Да и в целом, если основной конструктор пустой, можно опустить круглые скобки
🧾 Решение¶
fun main() {
println(
"You need to create 5 people cards according to the following example:\n" +
"Name: [enter your name], sex: [2 types of sex are available, female and male]"
)
val directory = List(5) { Human(readName(), readSex()) }
directory.map { it.printInfo() }
}
fun readName(): String {
println("Enter a name:")
val name = readln()
return name.ifEmpty { "Unknown Name" }
}
fun readSex(): Sex {
while (true) {
println("Enter sex:")
when (readln().uppercase()) {
Sex.MALE.name -> {
return Sex.MALE
}
Sex.FEMALE.name -> {
return Sex.FEMALE
}
else -> println("Enter Male or Female sex")
}
}
}
enum class Sex {
MALE,
FEMALE,
}
class Human(val name: String, val sex: Sex) {
fun printInfo() = println("Name: $name, sex: ${sex.name.lowercase()}")
}