Menu
Coddy logo textTech

Wyrażenie when

Część sekcji Podstawy ścieżki Kotlin w Coddy. Lekcja 32 z 93.

Gdy masz wiele konkretnych wartości do sprawdzenia, długie ciągi instrukcji else if mogą być trudne do odczytania. Kotlin udostępnia wyrażenie when jako czytelniejszą alternatywę do dopasowywania wartości do wielu możliwości.

fun main() {
    val day = 3
    
    val dayName = when (day) {
        1 -> "Monday"
        2 -> "Tuesday"
        3 -> "Wednesday"
        4 -> "Thursday"
        5 -> "Friday"
        else -> "Weekend"
    }
    
    println(dayName)  // Wypisuje: Wednesday
}

Wyrażenie when przyjmuje wartość i porównuje ją z każdą gałęzią. Gdy zostanie znalezione dopasowanie, zwracany jest odpowiadający mu wynik. Gałąź else obsługuje każdą wartość, która nie pasuje do wymienionych przypadków.

Możesz także dopasować wiele wartości w jednej gałęzi, oddzielając je przecinkami:

fun main() {
    val day = 6
    
    val type = when (day) {
        1, 2, 3, 4, 5 -> "Weekday"
        6, 7 -> "Weekend"
        else -> "Invalid"
    }
    
    println(type)  // Wypisuje: Weekend
}

Wyrażenie when zwracające wartość musi być wyczerpujące: dla każdego możliwego wejścia musi zwracać wynik. Te przykłady z liczbami całkowitymi wymagają else, ale wyrażenie when typu Boolean z gałęziami true i false nie wymaga.

challenge icon

Wyzwanie

Łatwy

Podano następującą zmienną:

val month = 4

Użyj wyrażenia when, aby określić porę roku na podstawie numeru miesiąca i zapisać wynik w zmiennej o nazwie season.

Warunki:

  • Miesiące 12, 1, 2 powinny zwracać "Winter"
  • Miesiące 3, 4, 5 powinny zwracać "Spring"
  • Miesiące 6, 7, 8 powinny zwracać "Summer"
  • Miesiące 9, 10, 11 powinny zwracać "Fall"
  • Każda inna wartość powinna zwracać "Invalid month"

Użyj wartości oddzielonych przecinkami w gałęziach when, aby grupować miesiące należące do tej samej pory roku.

Wyświetl wartość season.

Spróbuj swoich sił

fun main() {
    val month = 4
    
    // TODO: Napisz swój kod poniżej
    // Użyj wyrażenia when, aby określić porę roku na podstawie miesiąca
    // Zapisz wynik w zmiennej o nazwie 'season'
    
    
    // Wyświetl wynik
    println(season)
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Kotlin