Go言語(golang)のfor文(ループ)

※当サイトではアフィリエイト広告を利用しています

Go言語(golang)の条件文

for文の使い方を説明します。Tour of Goを参考にしています。

forを使うと処理をLOOPできます。

Go言語(golang)のfor文

基本的に、 for ループはセミコロン ; で3つの部分に分かれています:

  • 初期化ステートメント: 最初のイテレーション(繰り返し)の前に初期化が実行されます
  • 条件式: イテレーション毎に評価されます
  • 後処理ステートメント: イテレーション毎の最後に実行されます

初期化ステートメントは、短い変数宣言によく利用します。その変数は for ステートメントのスコープ内でのみ有効です。

ループは、条件式の評価が false となった場合にイテレーションを停止します。

基本的なforループ

この例では、iが0から4まで増加する間にループが実行されます。

package main

import "fmt"

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

結果

0
1
2
3
4

forを使った無限ループ

この例では、無限ループの文字が無限に表示され続けます。

package main

import "fmt"

func main() {
	for {
		fmt.Println("無限ループ")
	}
}

結果

無限ループ
無限ループ
無限ループ
無限ループ
無限ループ
・
・
・

break文を使うとループを抜けられます。

package main

import "fmt"

func main() {
	for {
		fmt.Println("無限ループ")
		break
	}
}

結果

無限ループ

rangeを使用したスライスやマップのイテレーション

この例では、配列を順番に処理します。

package main

import "fmt"

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

結果

Index: 0, Value: 1
Index: 1, Value: 2
Index: 2, Value: 3
Index: 3, Value: 4
Index: 4, Value: 5

for文の条件のみを使ったループ

package main

import "fmt"

func main() {
	sum := 0
	for sum < 10 {
		sum += 2
		fmt.Println(sum)
	}
}

結果

2
4
6
8
10
  1. この例では、sumが10未満の間、ループが継続します。

これらは基本的なforループの例ですが、Golangでは他にもbreakcontinuegotoなどのステートメントを使用してループの動作を制御できます。

breakステートメント

breakステートメントは、ループやswitchステートメントを中断し、それを含む最も内側のブロックから抜け出します。

package main

import "fmt"

func main() {
	for i := 0; i < 5; i++ {
		if i == 3 {
			break
		}
		fmt.Println(i)
	}
}

結果

0
1
2

continueステートメント

continueステートメントは、現在のループイテレーションを終了し、次のイテレーションを開始します。

package main

import "fmt"

func main() {
	for i := 0; i < 5; i++ {
		if i == 2 {
			continue
		}
		fmt.Println(i)
	}
}

結果

0
1
3
4

iが2のとき、continueが実行され、そのイテレーションは終了して次のイテレーションが始まります。

gotoステートメント

gotoステートメントは、指定されたラベルへの無条件のジャンプを行います。ただし、gotoは避けるべきであり、コードの可読性を低下させる可能性があるため、注意が必要です。

package main

import "fmt"

func main() {
	for i := 0; i < 5; i++ {
		if i == 3 {
			goto EndLoop
		}
		fmt.Println(i)
	}
EndLoop:
	fmt.Println("Loop ended.")
}

結果

0
1
2
Loop ended.

iが3になると、goto EndLoopが実行されて、ループから抜け出します。EndLoopラベルにジャンプし、”Loop ended.”が表示されます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

テック企業でプレイングマネージャーをしている Jun です。プログラミングの基礎をはじめ、組織やマネジメントについてブログを書いています。ハードスキル、ソフトスキルどちらも磨きたい方を対象にしています。一緒に学んで人生を楽しくしていきましょう!