Курс Raku / Основи / Основи порядку виконання / Умовні перевірки / Вправи / Високосний рік
Розв’язання: Високосний рік
Відмова від відповідальності
Рішення, показане нижче, має на меті навчити вас використовувати
умовні перевірки. У реальному житті ви можете вивчити методи вбудованого
класу Date. Ми вивчимо це у другій частині курсу.
Рішення
Алгоритм визначення, чи є рік високосним:
- якщо рік не ділиться на 4 => звичайний рік
- якщо рік не ділиться на 100 => високосний рік
- якщо рік не ділиться на 400 => звичайний рік
- інакше => високосний рік
Зверніть увагу, що ви можете використовувати вбудовані типи для роботи з датою та часом, тому ми повернемося до цього завдання у другій частині курсу.
Код 1
Перше рішення буквально відтворює наведені вище кроки:
my $year = prompt 'Year: ';
if $year % 4 {
say 'Common year';
}
elsif $year % 100 {
say 'Leap year';
}
elsif $year % 400 {
say 'Common year';
}
else {
say 'Leap year';
}🦋 Знайдіть програму у файлі leap-year.raku.
Код 2
У другому рішенні логіка зібрана в один вираз. Дужки не завжди потрібні, але додані тут для ясності.
my $year = prompt 'Year: ';
say (($year %% 400) || (($year %% 4) && ($year % 100))) ?? 'Leap year' !! 'Common year';🦋 Знайдіть програму у файлі leap-year-formula.raku.
Вихідні дані
Спробуйте обидві програми з найважливішими випадками, наприклад, 1900, 2000, 2020, 2021.
$ raku exercises/conditional-checks/leap-year.raku
Year: 1900
Common year
$ raku exercises/conditional-checks/leap-year.raku
Year: 2000
Leap year$ raku exercises/conditional-checks/leap-year-formula.raku
Year: 2020
Leap year
$ raku exercises/conditional-checks/leap-year-formula.raku
Year: 2021
Common year%%tipblock ## %% vs %
Зверніть увагу, що в логічних контекстах оператори %% і
% є взаємодоповнюючими. Ви можете використовувати цей факт,
щоб вибрати один із операторів, щоб уникнути явного порівняння з
нулем.
CodeBlockPlaceholder5 %%/tipblock
Навігація курсом
← Високосний рік | Цикли →