Menu
Coddy logo textTech

マップのエントリを反復処理する

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

for ループでは、for ((key, value) in map)を使って各マップエントリをキーと値に分割代入できます。合計には値を、識別にはキーを使用してください。すべてのマップ実装で反復順序がソートされているとは限りません。

main内:

val stock = mapOf("a" to 3, "b" to 5)
var total = 0
for ((name, count) in stock) {
    total += count
}
println(total)

2つの数量は、それぞれ3と5として加算されます。

エントリを分割代入すると、最初にキー、次に値が提供されます。

challenge icon

チャレンジ

中級

パラメータ stock: Map<String, Int> を使用して stockTotal を完成させてください。エントリの反復処理を使用して、すべての数量の合計を返します。空のマップの合計は 0 です。

上記でより厳しい上限が示されていない限り、コレクションは各レベルで最大 100 個の要素を含み、整数引数および整数コレクション値は -1000 から 1000 の範囲です。解析用に提供されるテキストには、説明されているように、無効または範囲外の表現が含まれる場合があります。

型 Int の値を返してください。提供された入力/出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは個数に続いて要素が並び、マップはエントリ数に続いて各キーと値が並びます。ネストされたリストでは、各行について個数と要素の形式を繰り返します。提供された main は、戻り値の後に改行を 1 つ付けて出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。

自分で試してみよう

fun stockTotal(stock: Map<String, Int>): Int {
    // ここに解答を書いてください。
    return 0
}
fun main() {
    val stockCount = readln().toInt()
    val stock = mutableMapOf<String, Int>()
    for (i0 in 0 until stockCount) {
        val stockKey = readln()
        val stockValue = readln().toInt()
        stock[stockKey] = stockValue
    }
    println(stockTotal(stock))
}
quiz icon腕試し

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

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

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