Menu
Coddy logo textTech

Try jako wyrażenie

Część sekcji Logika i przepływ danych ścieżki Kotlin w Coddy. Lekcja 53 z 63.

Blok try/catch może zwrócić wartość: ostatnie wyrażenie ukończonego bloku try lub pasującego bloku catch jest jego wynikiem. Blok finally wykonuje się później, aby przeprowadzić porządki, ale jego ostatnie wyrażenie nie zastępuje tej wartości. Oddziel porządki od obliczeń.

Wewnątrz main:

val value = try { "bad".toInt() } catch (error: NumberFormatException) { -1 }
println(value)

Dopasowany blok catch zwraca minus jeden jako wynik wyrażenia.

Wyrażenie try przyjmuje wartość z ukończonej gałęzi try lub catch.

challenge icon

Wyzwanie

Średni

Uzupełnij parsedDouble o parametr text: String. Użyj wyrażenia try, aby sparsować tekst jako Int i podwoić jego wartość. Przechwyć NumberFormatException i użyj -1. Pomyślnie sparsowane dane wejściowe mieszczą się w zakresie od -1000 do 1000; mogą pojawić się także nieprawidłowe ciągi znaków oraz ciągi z wartościami spoza zakresu. Nie usuwaj białych znaków.

O ile powyżej nie określono bardziej rygorystycznych ograniczeń, kolekcje zawierają maksymalnie 100 elementów na każdym poziomie, a argumenty całkowite i całkowite wartości w kolekcjach mieszczą się w zakresie od -1000 do 1000. Tekst dostarczony do parsowania może zawierać nieprawidłowe reprezentacje lub wartości spoza zakresu, zgodnie z opisem.

Zwróć wartość typu Int. Zachowaj dostarczony kod wejścia/wyjścia. Odczytuje on argumenty skalarne, po jednym w wierszu; lista zaczyna się od liczby elementów, po której następują jej elementy, a mapa zaczyna się od liczby wpisów, po której następują kolejne klucze i wartości. Listy zagnieżdżone powtarzają format liczby elementów i elementów dla każdego wiersza. Dostarczona funkcja main wypisuje zwracaną wartość, a po niej jeden znak nowej linii. Listy używają standardowego formatu Kotlin z nawiasami kwadratowymi; nie wypisuj żadnych dodatkowych etykiet.

Spróbuj swoich sił

fun parsedDouble(text: String): Int {
    // Wpisz tutaj swoje rozwiązanie.
    return 0
}
fun main() {
    val text = readLine().orEmpty()
    println(parsedDouble(text))
}
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Logika i przepływ danych

Poćwicz samodzielnie: Edytor online Kotlin