ガード節
CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 41/63。
ガード節は、入力がメインの処理経路に従えない場合に早期に戻ります。例外的なケースを最初に確認すると、条件分岐のネストを減らせます。return は現在の関数を終了するため、その関数内の後続の文は実行されません。
fun deliveryFee(items: Int): Int {
if (items < 0) return -1
return items * 2
}main 内では:
println(deliveryFee(-1))負の入力によってガードが発動し、通常の料金計算が行われなくなります。
ガード節は、条件が成立すると通常の処理経路に入る前に関数を終了させます。
チャレンジ
中級パラメーター values: List<Int> を指定して firstOrMissing を完成させてください。ガード節を使用し、空のリストの場合は -1 を返します。それ以外の場合は最初の値を返します。
上記でより厳しい範囲が指定されていない限り、コレクションは各レベルで最大 100 個の要素を含み、整数の引数および整数コレクションの値は -1000 以上 1000 以下です。解析用に提供されるテキストには、説明されているように、無効または範囲外の表現が含まれる場合があります。
型 Int の値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは個数に続いて要素が並ぶ形式で始まり、マップはエントリ数に続いて各キーと値が並ぶ形式で始まります。ネストされたリストでは、各行について個数と要素の形式が繰り返されます。提供された main は、戻り値の後に改行を 1 つ出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。
自分で試してみよう
fun firstOrMissing(values: List<Int>): Int {
// ここに解答を書いてください。
return 0
}
fun main() {
val valuesCount = readln().toInt()
val values = mutableListOf<Int>()
for (i0 in 0 until valuesCount) {
val valuesItem = readln().toInt()
values.add(valuesItem)
}
println(firstOrMissing(values))
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド