When z zakresami
Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 33 z 93.
Czasami trzeba sprawdzić, czy wartość mieści się w zakresie, zamiast dopasowywać konkretne wartości. Wyrażenie when obsługuje to za pomocą słowa kluczowego in połączonego z zakresami.
fun main() {
val score = 85
val grade = when (score) {
in 90..100 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
in 60..69 -> "D"
else -> "F"
}
println(grade) // Wypisuje: B
}Słowo kluczowe in sprawdza, czy wartość mieści się w określonym zakresie. Tutaj 85 mieści się w zakresie 80..89, więc ocena to „B”. Jest to znacznie czytelniejsze niż zapisywanie score >= 80 && score <= 89 dla każdego warunku.
Możesz także łączyć zakresy z konkretnymi wartościami w tym samym wyrażeniu when:
fun main() {
val age = 17
val category = when (age) {
0 -> "Newborn"
in 1..12 -> "Child"
in 13..19 -> "Teenager"
else -> "Adult"
}
println(category) // Wypisuje: Teenager
}Zakresy sprawiają, że kod jest bardziej czytelny podczas pracy z ciągłymi warunkami liczbowymi, co często zdarza się w systemach oceniania, kategoriach wiekowych i podobnych sytuacjach.
Wyzwanie
ŁatwyNapisz funkcję getTicketPrice, która przyjmuje age i zwraca cenę biletu w zależności od kategorii wiekowej danej osoby.
Użyj wyrażenia when z zakresami, aby określić odpowiednią cenę biletu.
Warunki:
- Wiek od
0do3: zwróć0(bezpłatnie) - Wiek od
4do12: zwróć10(cena dla dziecka) - Wiek od
13do17: zwróć15(cena dla nastolatka) - Wiek od
18do64: zwróć25(cena dla osoby dorosłej) - Wiek
65i więcej: zwróć12(cena dla seniora)
Parametry:
age(Int): Wiek danej osoby
Zwraca: Cenę biletu jako liczbę całkowitą (Int)
Spróbuj swoich sił
fun getTicketPrice(age: Int): Int {
// Napisz kod tutaj
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory – część 1
Operatory arytmetyczneOperator moduloPrzypisanie z operatoremOperatory porównaniaPowtórka – proste działania matematyczne7Podstawowe wejście/wyjście
Funkcja printlnSzablony ciągów znakówWczytywanie danych przez ReadLineKonwersja typówPowtórka — lata do emeryturyPowtórka — prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneArgumenty nazwaneWartości domyślneFunkcje z pojedynczym wyrażeniemPowtórka – funkcja SigmaPowtórka – funkcja walidująca2Zmienne
Val a VarWnioskowanie o typieLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPowtórzenie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Operatory logiczne, część 3Operator trójargumentowy z wyrażeniem ifPowtórka — prosta logika8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz3Obsługa wartości null
Czym jest bezpieczeństwo nullTypy dopuszczające nullOperator bezpiecznego wywołaniaOperator ElvisPodstawy wyzwania z funkcjamiAsercja wartości niebędącej nullPodsumowanie — bezpieczny dostęp6Podejmowanie decyzji
Instrukcja ifIf - elseIf jako wyrażenieWyrażenie whenWhen z zakresamiPowtórka — prosty kalkulator9Pętle
Pętla forPętla whilePętla do-whileBreakContinueZakresy w pętlachPętla zagnieżdżonaPowtórka – silniaPowtórka – dynamiczne wprowadzanie danychPoćwicz samodzielnie: Edytor online Kotlin