Вы знаете, что такое високосный год? Знаете, дополнительный день вы получаете примерно каждые четыре года? Он берет свое начало от календарной системы, которую в настоящее время использует большая часть мира: Григорианский календарь, также стандартизированный как ISO 8601.

Проще говоря, правило определения того, является ли данный год високосным, выглядит следующим образом:

  • Если год делится на 4, то это високосный год; Кроме
  • Если год делится на 100, то это не високосный год; пока не
  • Если год делится на 400, это високосный год.

Непонятно, правда?

Давайте попробуем использовать блок-схему, чтобы наглядно это представить:

Видите эти вложенные проверки «да»? Они усложняют понимание алгоритма. Это также напрямую соотносится с кодом, написанным в этом стиле. Вот пример, написанный на Haskell:

Мерзкий узор наконечника стрелы трудно читать и понимать. Ваш мозг в основном должен прыгать через обручи и поддерживать контекст, чтобы проследить через алгоритм.

Можем ли мы сделать лучше?

Ну да, если немного переставить условные проверки:

Код внезапно становится более декларативным и понятным:

Он даже читается как простой английский!

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