実装
for i := 1; i <= 100; i++ {
if i%3 == 0 {
fmt.Println(i, "3で割り切れる数")
if i%5 == 0 {
fmt.Println(i, "3でも5でも割り切れる数")
}
} else if i%5 == 0 {
fmt.Println(i, "5で割り切れる数")
} else {
fmt.Println(i)
}
}
上記のようにfor文の中身をif文で出し分けしてもいいのですが、可読性が悪くなるので下記のように書き換えることができます。
for i := 1; i <= 100; i++ {
if i%3 == 0 && i%5 == 0 {
fmt.Println(i, "3でも5でも割り切れる数字")
continue
}
if 1%3 == 0 {
fmt.Println(i, "3で割り切れる数字")
continue
}
if i%5 == 0 {
fmt.Println(i, "5で割り切れる数字")
continue
}
fmt.Println(i)
}
continue
で見た目もすっきりとした記述に変更すことができる。continue
は条件を満たしたら、今のループを終了して次のループ開始します。
実践してみる
ユーザーリストをループして、例えば18歳以下のユーザーを除外する場合に、年齢を見て、18歳未満はcontinue
でスキップします。そして、18歳以上のユーザーのみに処理を書く場合などに使えます。
for _, user := range users {
if user.Age < 18 {
continue
}
// 18歳以上のユーザーのみを処理
}