ループの中にあるループを見ていきましょう。繰り返し実行される_外側の_ループと外側のループの_実行ごとに_繰り返される_内側の_ループがあります。
例えば、外側のループが10回ループし、内側のループが5回ループする場合、1回外側のループがループするごとに内側のループが5回ループします。その後に外側のループが2回めのループに入り、また内側のループが5回ループします…
このようにループの中にループがあることをネストしたループと呼びます。ネストしたループにさらにループをネストすることも可能ですが、ここでは1つだけネストしたループについて見ていきます。
では試してみましょう。
package main
import (
"fmt"
)
func main() {
for i := 0; i <= 10; i++ {
for j := 0; j < 3; j++ {
fmt.Printf("Outer loop: %d\tInner loop: %d\n", i, j)
}
}
}
外側のループの実行ごとに内側のループが0
、1
、2
を出力しているのが分かります。
外側のループのi
と内側のループのj
の出力を分割してみましょう。内側のループをインデントして表示してみます。
package main
import (
"fmt"
)
func main() {
for i := 0; i <= 10; i++ {
fmt.Printf("Outer loop: %d\n", i)
for j := 0; j < 3; j++ {
fmt.Printf("\tInner loop: %d\n", j)
}
}
}