nilを含む配列の中にnil、数字がそれぞれ何個ずつあり、また数字の総計はどのくらいになるのかを表示するという問題に取り組んでいます。
配列の要素の中にnilが何個あり、数字が何個あるかを数えてprintで表示するまでは問題なくできました。しかし、配列内の数字の総和を求めようと、①、②を書き加えると、error: value of optional type 'Double?' not unwrapped; did you mean to use '!' or '?'?**というエラーが発生してしまいました。
Forループの中でelseの条件にまで辿り着いたindexは数値として扱われていると思い、そのままsumOfexampleArrayに足せると思ったのですが、できません。
どうしてでしょうか。
###発生している問題・エラーメッセージ
error: value of optional type 'Double?' not unwrapped; did you mean to use '!' or '?'?
###該当のソースコード
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)個の数字を持っています。") print("exampleArrayの数値の総和は\(sumOfexampleArray)です。")
###試したこと
②のように書いた理由は、Forループの中で、① exampleArrayの1つ目の数字(この場合、154.4)がindexに代入される。ー>② 154.4はnilではないのでelseの処理が実行されるー>③ indexは数値なのでsumOfexampleArrayに足すことができる。と考えたからです。この認識は間違っていますか?
###補足情報(言語/FW/ツール等のバージョンなど)
swift
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/05 02:32