Go言語:ループの使用
こんにちは、皆さん!
今日はGo言語の基本的な要素であるループについて学びます。ループは、同じ操作を繰り返し行う際に非常に役立つツールです。
Goのループ:for文
Go言語では、"for" 文を使ってループを作成します。他の多くのプログラミング言語と同様に、for文は初期化、条件、そしてループの終了後の処理を指定することができます。
それでは、for文を使用した基本的なループの例を見てみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 |
package main import "fmt" func main() { for i := 0; i < 5; i++ { fmt.Println(i) } } |
上記のコードは、0から4までの数字を順に表示します。
出力結果
0
1
2
3
4
無限ループとループの制御
Go言語では、"for" だけを使って無限ループを作成することも可能です。そして、"break" ステートメントを使用してループを抜け出すことができます。
次に、無限ループとbreak文を使用した例を見てみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package main import "fmt" func main() { i := 0 for { i++ if i > 5 { break } fmt.Println(i) } } |
上記のコードは、1から5までの数字を順に表示します。
出力結果
1
2
3
4
5
ループ内の条件分岐
ループ内で条件分岐を行いたい場合は、"if" 文を使うことができます。
以下に、for文とif文を組み合わせたソースコードの例を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i%2 == 0 { fmt.Println(i, "is even") } else { fmt.Println(i, "is odd") } } } |
上記のコードは、0から9までの数字を順に表示し、その数字が偶数であるか奇数であるかを判断します。
出力結果
0 is even
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
forとrangeを組み合わせたループ
Go言語では、"range"キーワードを使用すると、配列やスライス、マップ、文字列の各要素に対して順番にアクセスすることができます。
以下に、for文とrangeを組み合わせたソースコードの例を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
package main import "fmt" func main() { fruits := []string{"apple", "banana", "cherry"} for i, fruit := range fruits { fmt.Println(i, fruit) } } |
上記のコードでは、fruitsという名前のスライスを定義し、その各要素をfor文とrangeを使って順番に表示しています。
出力結果
0 apple
1 banana
2 cherry
gotoを使用したループ
Go言語には、"goto"文も用意されています。
"goto"文は、プログラムの制御を指定したラベルの位置に移動させます。
以下に、goto文を使用したループのソースコードの例を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import "fmt" func main() { i := 0 loop: if i < 5 { fmt.Println(i) i++ goto loop } } |
上記のコードでは、iが5より小さい間、iの値を表示し、iを1増やし続けます。
これにより、0から4までの数字を表示するループが実現されています。
出力結果
0
1
2
3
4
まとめ
今回の記事では、Go言語におけるループについて学びました。
まず基本的なforループの使い方を学び、次に条件式を用いたforループ、そして無限ループの作成方法を見てきました。
さらに、for文中にif文を用いる例も学びました。
最後に、forとrangeを組み合わせたループとgoto文を使用したループの例を見てきました。
これらを組み合わせることで、様々な処理をループ内で実現することが可能です。
最後まで読んで頂き、ありがとうございました。少しでもお役に立てたなら幸いです!