Go言語のfor文の基本とforを使ったネストについて見てきました。
このforキーワードを使ったloop処理(反復処理)については、3つの方法にまとめることができます。
ここでは、このforキーワードを使ったループ処理の3つの方法を見て行きたいと思います。
for 初期化式; ループ継続条件式; 増減式 { }
まずは、for文の基本です。これはすでにやりましたね。
もう一度確認しておきましょう。
以下の形での処理になります。
for 初期化式; ループ継続条件式; 増減式 {
ループ内で実行する処理
}
具体的なコードは、以前やったコードを再掲すると次のコードになります。
package main
import "fmt"
func main() {
for i := 0; i <= 10; i++ {
fmt.Println(i)
}
}
実行すると、0から10まで順に表示されます。
この形がプログラミングでよく見られるfor文での反復の基本ですね。
for 条件式 { }
もう一つのfor文でのloopの形を見ていきます。
次のような形での処理になります。
for 条件式 {
ループ処理のコード
}
この場合は条件式を満たしている間、ブロック内のループ処理をするというコードです。ブロック内にインクリメントなどで反復に繋がるコードを記述します。
次のようなコードが考えられます。
package main
import "fmt"
func main() {
x := 0
for x < 5 {
fmt.Println(x)
x++
}
fmt.Println("処理終了")
}
main()関数の中で、まずxを初期化しています。このxが条件式「x < 5」を満たしている間、波括弧{}のブロック内の処理をします。ここでは、xをPrintln()で出力し、その後、x++でxに1を加えて処理を繰り返します。
条件式を満たさなくなったらループ処理を抜けて、「処理終了」を表示させるようにしています。
実行結果は次のようになります。
0
1
2
3
4
処理終了
ループ処理終了後に、処理終了と表示されているのがわかります。
for { }
もう一つのfor文でのloop処理の形を見て行きます。
今度は、先ほどの形をちょっと変えた形になります。
for {
ループ処理のコード
}
これは波括弧{}のブロック内で反復処理のコード書いて、for文でループさせるというイメージですが、これだとわかりにくにので実際のコードで確認してみましょう。
package main
import "fmt"
func main() {
x := 1
for {
if x > 5 {
break
}
fmt.Println(x)
x++
}
fmt.Println("処理終了")
}
for文の中にif文で条件式を記述しています。この条件式を満たした時にbreakでループ処理を抜けるということになります。(このbreakについては、また別のところで扱います)
Println()でxの値を表示し、x++で1を加えてfor文でループしているのですが、上の条件式「x > 5」になったならループを抜けて、「処理終了」を表示するという形です。
実行結果は次のようになります。
1
2
3
4
5
処理終了
条件式を満たした後にループを抜けて、処理終了になっているのが確認できます。
最後に
ここでは、Go言語のforキーワードを使って、反復処理をする3つの方法について見てきました。
次の3つの形でforキーワードでloop処理します。
- for 初期化式; ループ継続条件式; 増減式 { }
- for 条件式 {}
- for {}
処理の中断のbreakなどは別のところで扱います。