Go言語 for文のサンプル(break/continue)

Go言語のfor文のサンプルです。

確認環境
・go 1.12.6

目次

for文

for 初期化式  ; 条件式  ;  増減式 {
  繰り返される箇所
}
  • 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
  • 初期化式は、最初に1回だけ実行されます。
  • 条件式がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、ループ処理を終了します。
  • 増減式でカウンター変数/ループ変数の値が変わります。
  • 初期化式にあるループで使用する変数をカウンター変数またはループ変数といいます。
  • 以下は、Go言語公式のEffective Goのfor文のリンクです。
    https://golang.org/doc/effective_go.html#for

コード

for文のサンプルです。

package main
import "fmt"

func main(){
	for i := 0; i < 3; i++ {
			fmt.Println(i) // 0 1 2
	}
}

5行目の左の初期化式は、i:=0でiに0がセットされます。
真ん中の条件式は、i<3でiが3より小さいときは処理を実行します。
右の増減式は、i++でiが1つずつ増加します。
iの値が3になるとループ処理を終了します。
6行目は、0,1,2が出力されます。

for文+range

for 変数1 := 配列などの変数2 {
  繰り返される箇所
}
  • 上記for文との違いは、変数の値を加算する処理がありません。
  • 配列などの要素を順番にアクセスします。
  • for文より記述量が少なくわかりやすいので可能な場面ではこちらを使用しましょう。
package main
import "fmt"

func main(){
	color1 := []string{"赤","黄","青"}

	for a, b := range color1{
		fmt.Println(a,b) //0 赤 1 黄 2 青
	}

	for _, b := range color1{
		fmt.Println(b) //赤 黄 青
	}
}

5行目は、配列です。
7行目は、for文+rangeで配列のすべての要素にアクセスします。
8行目は、キーと値を表示します。
値のみを取得する場合は、11行目のように、キーに当たる部分をアンダースコア(_)にします。

 

for文でbreakを使用する

  • for文でbreakを使用するとループ処理から抜けます。

コード

for文でbreakを使用するサンプルです。

package main
import "fmt"

func main(){

	for i := 0; i < 3; i++ {

		if i == 1 {
			break
		}
		fmt.Println("i=",i); //i= 0
	}
}

9行目のbreakでfor文を抜けます。
11行目は、i=0のみ出力されます。

for文が入れ子のときにbreakを使用する

for文が入れ子のときのbreakのサンプルです。

package main
import "fmt"

func main(){

	for i := 0; i < 2; i++ {

		for j := 0; j < 2; j++ {

			if j == 0 {
				break
			}
			fmt.Println("j=",j); //出力なし
		}
		fmt.Println("i=",i); // i=0 i=1
	}
}

6,8行目にfor文があり入れ子になっています。
11行目のbreakは、内側のfor文のみ抜けます。

for文でcontinueを使用する

  • for文でcontinueを使用すると、ループ処理の先頭に戻ります。

コード

for文でcontinueを使用するサンプルです。

package main
import "fmt"

func main(){

	for i := 0; i < 3; i++ {

		if i == 1 {
			continue
		}
		fmt.Println("i=",i); //i=0 i=2
	}
}

9行目のcontinueでループ処理の先頭の6行目に戻ります。
11行目は、i=0とi=2が出力されます。

 

for文が入れ子のときにcontinueを使用する

for文が入れ子のときのcontinueのサンプルです。

package main
import "fmt"

func main(){

	for i := 0; i < 2; i++ {

		for j := 0; j < 2; j++ {

			if j == 0 {
				continue
			}
			fmt.Println("j=",j); //j=1 j=1
		}
		fmt.Println("i=",i); // i=0 i=1
	}
}

6,8行目にfor文があり入れ子になっています。
11行目のcontinueは、内側のfor文の先頭の8行目に戻ります。

比較演算子

上記コードの==は比較演算子です。

比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。

比較演算子 説明
a == b aとbの値は等しい
a != b aとbの値は等しくない
a > b aはbより大きい
a >= b aはbより大きい または 等しい
a < b aはbより小さい
a <= b aはbより小さい または 等しい

関連の記事

Go言語 if文のサンプル

△上に戻る