🐕
[Go]繰り返し処理を学ぶ
エンジニアの皆様、お疲れ様です。
前回は構造体についてまとめました。
今回は普段Goを書くときによく利用する繰り返し処理について
まとめながら書いていこうと思います。
やりたいことにあわせて書き分けていきたいですねー!
go言語の繰り返し処理は for range と for 文のどちらかを利用します。
continue で処理をスキップしたり、 break でループ処理から抜けるようなこともできます。
■ for
i < 5 はifの条件文と同じです、条件がfalseになるまで処理は繰り返されます。
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
■出力
0
1
2
3
4
先程の処理に条件を追加しました。
iが偶数であればcontinueでスキップし、奇数を出力しました。
package main
import "fmt"
func main() {
for i := 1; i < 5; i++ {
if i%2 == 0 {
continue
}
fmt.Println(i)
}
}
■出力
1
3
先程の処理の条件を変更しました。
iが3であればbreakで処理を終了させます。
package main
import "fmt"
func main() {
for i := 1; i < 5; i++ {
if i == 3 {
break
}
fmt.Println(i)
}
}
■出力
1
2
ここまでは、基本的な使い方です。他の言語と似ているので理解もしやすいかなと思います。
■ for/range
文字列の配列namesを定義し、出力する処理を書きました。
range の後に繰り返したい値を入れます。
繰り返しの回数が必要であれば、 for の後のiを使用します。
今回のように回数を使用しない場合は、アンダーバーにすればよいです。
package main
import "fmt"
func main() {
names := []string{"A子", "B子", "C子", "D子", "E子"}
for _, name := range names {
fmt.Println(name)
}
}
■出力
A子
B子
C子
D子
E子
■ Goto
実際に業務で書いたことはないのですが下記のような書き方もできます。
goto L で L: にあるfmt.Println(i)で出力されます。
package main
import "fmt"
func main() {
i := 0
L:
fmt.Println(i)
if i < 5 {
i++
goto L
}
}
■出力
0
1
2
3
4
5
■ まとめ
繰り返し処理は、for range ・ for 文を利用する。
他の言語と同じようにcontinue/breakやif文を利用して条件を追加することができる。
Discussion