Menu
Coddy logo textTech

ガード節

CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 41/63。

ガード節は、入力がメインの処理経路に従えない場合に早期に戻ります。例外的なケースを最初に確認すると、条件分岐のネストを減らせます。return は現在の関数を終了するため、その関数内の後続の文は実行されません。

fun deliveryFee(items: Int): Int {
    if (items < 0) return -1
    return items * 2
}

main 内では:

println(deliveryFee(-1))

負の入力によってガードが発動し、通常の料金計算が行われなくなります。

ガード節は、条件が成立すると通常の処理経路に入る前に関数を終了させます。

challenge icon

チャレンジ

中級

パラメーター 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))
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド