式としてのTry
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 53/63。
try/catch は値を生成できます。完了した try ブロックまたは一致する catch ブロックの最後の式が、その結果になります。その後、クリーンアップのために finally ブロックが実行されますが、その最後の式がその値を置き換えることはありません。クリーンアップを計算処理から分離してください。
mainの中で:
val value = try { "bad".toInt() } catch (error: NumberFormatException) { -1 }
println(value)一致する catch は、式の結果としてマイナス1を提供します。
try 式は、完了した try または catch 分岐から値を取得します。
チャレンジ
中級パラメーター text: Stringを使用してparsedDoubleを完成させてください。try式を使用して、textをIntとして解析し、2倍にしてください。NumberFormatExceptionをキャッチし、-1を使用してください。正常に解析できる入力は-1000から1000の範囲です。無効な文字列や範囲外の文字列が現れる場合もあります。トリミングは行わないでください。
上記でより厳しい境界が指定されていない限り、各レベルのコレクションに含まれる要素は最大100個であり、整数の引数および整数のコレクション値は-1000から1000の範囲です。解析対象として提供されるテキストには、説明されているように無効な表現や範囲外の表現が含まれる場合があります。
型Intの値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は1行に1つずつ読み取られます。リストは個数に続いて要素が並ぶ形式で始まり、マップはエントリ数に続いて各キーと値が並ぶ形式で始まります。ネストされたリストでは、行ごとに個数と要素の形式が繰り返されます。提供されたmainは、戻り値に続けて改行を1つ出力します。リストにはKotlin標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun parsedDouble(text: String): Int {
// ここに解答を書いてください。
return 0
}
fun main() {
val text = readLine().orEmpty()
println(parsedDouble(text))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド