Курс Raku / Додаток 🆕 / Порядок виконання та функції / Порядок виконання та логіка / Вправи / Літерні оцінки
Розв’язання: Літерні оцінки
Ось одне з можливих розв’язань задачі.
Код
for 95, 82, 71, 58 -> $score {
my $grade = do given $score {
when * >= 90 { 'A' }
when * >= 80 { 'B' }
when * >= 70 { 'C' }
when * >= 60 { 'D' }
default { 'F' }
}
say "$score -> $grade";
}🦋 Знайдіть програму у файлі letter-grades.raku.
Вивід
95 -> A
82 -> B
71 -> C
58 -> FКоментарі
do givenперетворює весьgiven/whenна вираз, значенням якого є блок, що збігся, — тут це літера оцінки, — і його зберігають у$grade.Кожен
when * >= Nє порівнянням з Whatever проти теми. Перемагає перший, що спрацював, тож для меж потрібна лише нижня границя для кожної.