演習1-4
演習1-3のプログラムを,rangeを使ったforループで書き直せ.
解答例
解答例
- package main
- import fmt "fmt"
- func main() {
- a := [5]int{5,7,9,3,1}
- sum := 0
- for i,e := range a {
- sum += e
- fmt.Printf("a[%d]=%d\n", i, e)
- }
- fmt.Printf("合計:%d\n", sum)
- }
解説
解説
range節によるfor文(8行目~11行目)
- このfor文は,配列やスライス,文字列,マップ,チャネルから受信した値の全要素についてイテレーション(繰り返し)をおこないます.上記の例では,配列aのインデックスと要素が,それぞれ順に変数 i,e に代入され,全ての要素について,sum+=e と fmt.Printf("a[%d]=%d\n", i, e) を実行します.
- インデックスの値を使わない場合は,ブランク識別子(アンダーライン _ )を使うことができます.ブランク識別子を使うとどんな型の値でも代入でき,値を他に影響およぼすことなく破棄することができます.解答例(2)の8行目を参照してください.
解答例(2)
解答例(2)
- package main
- import fmt "fmt"
- func main() {
- a := [5]int{5,7,9,3,1}
- sum := 0
- for _,e := range a {
- sum += e
- }
- fmt.Printf("合計:%d\n", sum)
- }