0
0

for文でcontinueの理解。使用例も合わせて

Posted at

実装

	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歳以上のユーザーのみを処理
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0