【質問】
Swiftの配列、オプショナル型、Forループに関する質問です。
nilを含む配列の中にnil、数字がそれぞれ何個ずつあり、また数字の総計はどのくらいになるのかを表示するという問題に取り組んでいます。
配列の要素の中にnilが何個あり、数字が何個あるかを数えてprintで表示するまでは問題なくできました。しかし、配列内の数字の総和を求めようと、①、②を書き加えると、error: value of optional type 'Double?' not unwrapped; did you mean to use '!' or '?'?というエラーが発生してしまいました。
Forループの中でelseの条件にまで辿り着いたindexは数値として扱われていると思い、そのままsumOfexampleArrayに足せると思ったのですが、できません。
どうしてでしょうか。
var exampleArray: [Double?] = [154.4, nil, 133, 13.4, 221.3, nil, nil, 103.2]
var nilCounter :Int = 0
var numberCounter :Int = 0
var sumOfexampleArray :Double = 0 ...①
for index in exampleArray {
if index == nil {
nilCounter += 1
} else {
numberCounter += 1
sumOfexampleArray += index ...②
}
}
print("exampleArrayは(nilCounter)個のnilを持っています。")
print("exampleArrayは(numberCounter)個のnilを持っています。")
print("exampleArrayの数値の総和は(sumOfexampleArray)です。")