Перейти к содержанию

🗒 Задача

В любом учебнике есть задачи про космос. Объяви переменные и выведи данные о полете в космос первого человека.

  • Запиши в новую переменную year год полета Юрия Гагарина в космос;

  • Объяви и проинициализируй переменные hour и minute – час и минуту взлета соответственно;

  • Выведи год, час и минуту взлета по одной переменной на каждую строку;

  • Затем измени значения переменных hour и minute, чтобы они теперь имели значение часа и минуты посадки. Выведи время посадки в одной строке в формате [часы:минуты]. Пример: 09:07.

Определи, где в программе переменные должны задаваться через val, а где через var.

Данные для задачи: Год полета – 1961 Взлет – 09:07 Посадка – 10:55

Подсказка для вывода: какой метод печати в консоль не делает перенос в конце строки?

❌ Ошибки

  • объявляют Int и числа выводятся без нуля в начале — предлагаем делать согласно примеру в ТЗ и говорить, что сервер обычно присылает время/дату строками

  • объявляют переменные в разнобой или через пустую строку — плохо влияет на читабельность

✏️ Популярные комментарии

В целом результат есть! но в примере в ТЗ цифры начинаются с 0.
Вообще нормальная практика, если сервер присылает дату или время строкой.
Давай объявим строки и сделаем правильный формат)
Обрати внимание комментарий я оставил в конкретной строке. Давай объявим непосредственно переменными строками сразу. В строке можно вначале написать ноль, потому что это уже не число.
Рекомендую объединять блоки с объявлением переменных вместе, отделяя пустой строкой от всего остального кода. Это сделает код менее монолитным и хорошо повлияет на читабельность.
так как мы пишем на Котлин, лучше все таки использовать не конкатенацию (сложение), а интерполяцию)
обрати внимание, согласно условию следует выводить полностью значения (с нулем в начале) как это можно было бы реализовать?
Задача обращает внимание на ноль в начале числа. Давай эти значения оформим строками в правильном формате. Это тоже нормальная практика, когда сервер присылает время/дату в текстовом формате. Так что тут корректно будет выводить именно строковый тип
Предполагаем, что требуемый в условии формат вывода дальше пойдет на сервер/в базу и так далее. поэтому формат вывода по условию крайне рекомендуется соблюдать: "в формате [часы:минуты]. Пример: 09:07."
Добавлять 0 для корректного вывода не лучшее решение по стилю и функционалу. Есть еще идеи, как избежать хардкода нуля?)
Рекомендую отделять блок с определением переменных от всего остального кода пустой строкой. Код будет выглядеть менее монолитным, что кратно повысит читаемость.
Посмотри в этом пулл реквесте у тебя тянутся коммиты из всех трех новых веток, хотя если создавать из мастера, такого не увидишь. Поэтому тут история повторяется, что была в другой таске, предлагаю поправить)

🧾 Решение

val year = "1961"
var hour = "09"
var minute = "07"

println("Год полета: $year")
println("Час взлета: $hour")
println("Минута взлета: $minute")

hour = "10"
minute = "55"

print("Время посадки: ")
print("$hour:$minute")