Треки
/
Java
Java
/
Вправи
/
Високосний рік
Високосний рік

Високосний рік

Легка

Вступ

Високосний рік (у григоріанському календарі) настає:

  • У кожному році, який ділиться без остачі на 4.
  • Окрім випадку, коли рік ділиться без остачі на 100, і тоді він високосний лише за умови, що також ділиться без остачі на 400.

Кілька прикладів:

  • 1997 рік не був високосним, бо не ділиться на 4.
  • 1900 рік не був високосним, бо не ділиться на 400.
  • 2000 рік був високосним!
Note

Щоб отримати чудове чотирихвилинне пояснення самого явища високосних років, перегляньмо це відео на YouTube.

Вказівки

Ваше завдання - визначити, чи є заданий рік високосним.

Реалізація

Перш ніж почати, переконаймося, що ми розуміємо, як писати код, який здатен проходити тестові випадки. Щоб дізнатися більше, перегляньмо цей туторіал.

Більшість вправ із Java містять кілька тестових випадків. Ці випадки структуровані так, щоб підтримувати корисний процес, відомий як розробка через тестування (TDD). TDD полягає в повторенні структурованого циклу, який допомагає програмістам будувати складну функціональність частина за частиною, а не всю одразу. Цей цикл можна описати так:

  1. Додайте тест, який описує одну частину бажаної функціональності, якої поки що немає в коді.
  2. Запустіть тести, щоб переконатися, що цей щойно доданий тест не проходить.
  3. Оновлюйте наявний код, доки не будуть виконуватися обидві умови:
    • усі старі тести і далі проходять;
    • новий тест теж проходить.
  4. Приберіть зайве в коді, переконавшись, що всі тести і далі проходять. Зазвичай це означає перейменування змінних, вилучення дубльованих фрагментів логіки, вилучення зайвого логування тощо.
  5. Поверніться до кроку 1, доки не буде реалізовано всю бажану функціональність!

Тестові файли в цьому треку містять усі тести, які рішення має проходити, щоб його вважали правильним. Це не відразу видається сумісним із циклом, описаним вище, у якому тести пишуть по одному. Однак інструмент, який ми використовуємо для написання тестів, JUnit, надає анотацію @Disabled, яку можна використати, щоб тимчасово пропустити вже написаний тест. Завдяки цій анотації ми стежимо за тим, щоб тестові файли, які ми надаємо, відповідали таким правилам:

  • У будь-якому тестовому файлі перший тест типово не пропускається.
  • У будь-якому тестовому файлі всі тести, крім першого, типово пропускаються.

Це дає змогу відтворити цикл TDD, виконавши такі трохи змінені кроки:

  1. Запустіть тести, щоб переконатися, що зараз не проходить щонайбільше один тест.
  2. Оновлюйте наявний код, доки не почнуть проходити всі непропущені тести.
  3. Приберіть зайве в коді, переконавшись, що всі непропущені тести і далі проходять.
  4. Вилучіть першу згори анотацію @Disabled у тестовому файлі.
  5. Поверніться до кроку 1, доки не залишиться жодного пропущеного тесту й усі тести не проходитимуть!
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Java Exercism

Час розпочати Високосний рік?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Java, а також 26 концепцій158 вправ та справжнє наставництво від людей, і все це безкоштовно.

Глибоке занурення у Високосний рік!

Глибоке занурення в різні алгоритми й підходи, які можна застосувати для розвʼязання вправи «Високосний рік»: разом із Джеремі й Еріком ми досліджуємо цікаві рішення спільноти 10 різними мовами на Exercism.