【Go】rangeとは?Golangeでfor文の書き方紹介

2025年5月10日Go

kamiです。
TwitterYoutubeもやってます。

今回はrangeとは?Golangeでfor文の書き方紹介の紹介です。

forの構文

Go言語(Golang)でのforループは、繰り返し処理を行うための唯一のループ構文で、Goの簡潔な構文とシンプルな制御構造の一つです。
forループは他の言語のwhileやdo-whileループの役割も担っています。

for 初期化; 条件式; 更新式 {
    // ループ内の処理
}
icon

つまり、for文ではwhileやdo-whileループはありません。

for文

一般的なfor文です。
こちらは説明不要かと思いますが、軽くだけ説明しておきます。

iが0から始まり、5未満である間ループを繰り返します。
i++で1ずつ増加し、fmt.Println(i)で各イテレーションのiの値が出力されます。

for i := 0; i < 5; i++ {
    fmt.Println(i)
}

スポンサードサーチ

条件付きforループ(while文風)

n < 5がtrueである間ループが実行されます。
ループの中でnが1ずつ増加し、5に達するとループを抜けます。

n := 1
for n < 5 {
    fmt.Println(n)
    n++
}

無限ループ

条件式や初期化・更新式を省略して書くと無限ループになります。
breakを使用して任意のタイミングでループを終了させることが可能です。

for {
    fmt.Println("無限ループ中")
    break // 条件によってここでループを終了できる
}

スポンサードサーチ

配列を使ったるforループ

rangeキーワードを使用して、numbersスライスの各要素にアクセスし、indexとvalueを取得しています。

rangの説明は次で行いますね

numbers := []int{1, 2, 3, 4, 5}
for index, value := range numbers {
    fmt.Printf("index: %d, value: %d\n", index, value)
}

rangeとは?

rangeキーワードは、スライスや配列、マップ、チャネル、文字列などのコレクション要素を順番に取り出して処理するために使用されます。

rangeは、指定したコレクションの要素を一つずつ取り出し、インデックスと要素の値を提供します。

collection := []int{10, 20, 30, 40}
for index, value := range collection {
    // 各要素に対する処理
}
  • index:各要素のインデックスを表します。
  • value:コレクション内の各要素の値を表します。

スポンサードサーチ

インデックスが不要な場合

インデックスが不要な場合、_(ブランク識別子)で無視できます。

numbers := []int{10, 20, 30, 40}
for _, value := range numbers {
    fmt.Println(value) // インデックスを無視し、値のみ出力
}

マップに対するrange

マップに対してrangeを使うと、各エントリの「キー」と「値」を取り出せます。

person := map[string]int{"kami": 30, "god": 40}
for key, value := range person {
    fmt.Printf("Key: %s, Value: %d\n", key, value)
}

personマップの各要素のキーと値が出力されます。

以上になります。

GoGo

Posted by kami