次のような android の kotlinのコードがあります。
data class Item(val code_value: String, val quantity: Int, val unit_price : Int )
// 状態を保持するリスト
val items = remember {
mutableStateListOf(
//Item("Name", 25, true),
// Item("Age", 30, false)
Item( "だいこん1", 0, 100 ),
Item( "にんじん1", 0, 200 )
Item( "だいこん2", 0,300 ),
Item( "にんじん2", 0, 400 )
Item( "だいこん3", 0, 500 ),
Item( "にんじん3", 0, 200 )
)
}
itemsのリストが要素数が0かどうかチェックしてから、
このときに itemsのリストに要素が入っていれば、
そのそれぞれのItemのフィールド
quantity と unit_priceをアイテムごとに掛け算をして、
それを足し合わせた合計の値を計算するような
制御文を記述していただきたいのですが・・・
↓
以下は、`items` リストの要素数を確認し、
要素が存在する場合には各 `Item` の
`quantity` と `unit_price` を掛け算し、
その結果を合計するコードの例です。
```kotlin
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.remember
data class Item(val code_value: String, val quantity: Int, val unit_price: Int)
fun calculateTotal(items: List<Item>): Int {
// items リストが空でないかチェック
if (items.isNotEmpty()) {
// 各アイテムの quantity と unit_price を掛け算し、その合計を計算
return items.sumOf { it.quantity * it.unit_price }
}
return 0 // items リストが空の場合は 0 を返す
}
// メイン関数内でテスト
fun main() {
val items = mutableStateListOf(
Item("だいこん1", 2, 100),
Item("にんじん1", 3, 200),
Item("だいこん2", 1, 300),
Item("にんじん2", 4, 400),
Item("だいこん3", 0, 500),
Item("にんじん3", 5, 200)
)
val total = calculateTotal(items)
println("合計: $total")
}
```
### コードのポイント
1. **`sumOf` の使用**
Kotlin の `sumOf` 関数を使用して、
リストの各要素に対する計算結果の合計を簡潔に求めています。
2. **空リストのチェック**
`items.isNotEmpty()` を用いてリストが空かどうかを確認し、
空の場合は合計値として `0` を返しています。
3. **掛け算のロジック**
各 `Item` の `quantity` と `unit_price` を掛け算して
合計値を計算します。
### 実行結果(例)
上記のリストを使った場合の出力は次のようになります:
```
合計: 3800
```
コメント
コメントを投稿