Raku kurss / Pamati / Izpildes plūsmas pamati / Nosacījumu pārbaudes / Exercises / Garais gads
Risinājums: Garais gads
Atruna
Zemāk parādītais risinājums ir paredzēts, lai jūs apmācītu,
izmantojot nosacījumu pārbaudes. Reālajā dzīvē jūs varat izmantot
iebūvētās Date klases metodes. Mēs to apgūsim kursa otrajā
daļā.
Risinājums
Algoritms, lai noteiktu, vai gads ir garais gads:
- ja gads nav dalāms ar 4 => parastais gads
- ja gads nav dalāms ar 100 => garais gads
- ja gads nav dalāms ar 400 => parastais gads
- citādi => garais gads
Ņemiet vērā, ka varat izmantot iebūvētos tipus darbam ar datumiem un laiku, tāpēc mēs atgriezīsimies pie šī uzdevuma kursa otrajā daļā.
Kods 1
Pirmais risinājums burtiski atkārto iepriekš minētās darbības:
my $year = prompt 'Gads: ';
if $year % 4 {
say 'Parastais gads';
}
elsif $year % 100 {
say 'Garais gads';
}
elsif $year % 400 {
say 'Parastais gads';
}
else {
say 'Garais gads';
}🦋 Atrodiet programmu failā leap-year.raku.
Kods 2
Otrajā risinājumā loģika ir apkopota vienā izteiksmē. Iekavas ne vienmēr ir nepieciešamas, bet šeit pievienotas skaidrības labad.
my $year = prompt 'Gads: ';
say (($year %% 400) || (($year %% 4) && ($year % 100))) ?? 'Garais gads' !! 'Parastais gads';🦋 Atrodiet programmu failā leap-year-formula.raku.
Izvade
Izmēģiniet abas programmas ar vissvarīgākajiem gadījumiem, piemēram, 1900, 2000, 2020, 2021.
$ raku exercises/conditional-checks/leap-year.raku
Gads: 1900
Parastais gads
$ raku exercises/conditional-checks/leap-year.raku
Gads: 2000
Garais gads$ raku exercises/conditional-checks/leap-year-formula.raku
Gads: 2020
Garais gads
$ raku exercises/conditional-checks/leap-year-formula.raku
Gads: 2021
Parastais gads%%tipblock ## %% vs %
Ņemiet vērā, ka loģiskos kontekstos operatori %% un
% ir komplementāri. Jūs varat izmantot šo faktu, lai
izvēlētos vienu no operatoriem, lai izvairītos no tiešas salīdzināšanas
ar nulli.
CodeBlockPlaceholder5 %%/tipblock
Kursa navigācija
← Garais gads | Cikli →