今回はGo言語のループ処理について、紹介します。
Go言語には while文が無く、繰り返し処理はすべて for を用います。また、他の言語同様、continue でスキップ、break でループ処理を抜けることができます。
基本の書き方
for 初期化; 条件式; 後処理 {
// ...
}
サンプルコード:
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
結果:
0
1
2
3
4
1
2
3
4
whileのような書き方
for 条件式 {
// …
処理
}
// …
処理
}
サンプルコード:
package main
import "fmt"
func main() {
var i = 0
for i < 5 {
fmt.Println(i)
i++
}
}
結果:
0
1
2
3
4
1
2
3
4
無限ループ
for {
// …
処理
}
// …
処理
}
サンプルコード:
package main
import "fmt"
func main() {
i := 0
for {
i += 1
if i > 5 {
break
}
if i % 2 == 0 {
continue
}
fmt.Println(i)
}
}
結果:
1
3
5
3
5
rangeを用いてループ処理
配列やスライスなどイテラブルなものに対しては range を用いてループ処理することができます。
for インデックス, 変数 := range 配列 {
処理
}
サンプルコード:
package main
import "fmt"
func main() {
colors := [...]string{"Red", "Green", "Blue"}
for i, color := range colors {
fmt.Printf("%d: %s\n", i, color)
}
}
結果:
0: Red
1: Green
2: Blue
1: Green
2: Blue