【Go入門】loop処理 – ネストされたfor文の反復処理

Go
スポンサーリンク

Go言語のfor文の基本について見てきました。

このfor文は、ネストした形で利用することもできます。

for文の中でfor文を利用して反復処理を行うことは、他のプログラミング言語でも見られるものですので、理解はしやすいと思います。

スポンサーリンク

ネストされたfor文のloop処理

for文をネストした形で利用してみます。

次のようなコードで確認してみましょう。

package main

import "fmt"

func main() {
	for i := 0; i < 5; i++ {
		fmt.Printf("外側の反復処理: %d\n", i)
		for j := 0; j < 3; j++ {
			fmt.Printf("\t 内側の反復処理: %d\n", j)
		}
	}
}

外側の反復処理を、iの初期化式で行います。ループ継続条件式は4まで、増減式では1を加えます。

内側の反復処理を、jの初期化式で行います。ループ継続条件式は2まで、増減式では1を加えます。見やすくするために、こちらの処理はタブを使ってずらして表示させます。

外側の反復処理を1回する毎に、内側の反復処理を全ておこない、外側の反復処理の回数だけ行うという処理です。

外側の反復処理: 0
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 1
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 2
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 3
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 4
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2

外側のループ処理と内側のループ処理がネストされた形で出力できているのが確認できます。

スポンサーリンク

Pythonコードで書くと…

このネストされたfor文のコードをPythonでも書いてみましょう。

ただし、for文の初期化式、ループ継続条件式、増減式での反復処理はPythonには無いので、range()を使って同様なコードを書いてみます。

def main():
    for i in range(5):
        print("外側の反復処理:", i)
        for j in range(3):
            print("\t 内側の反復処理:", j)


if __name__ == "__main__":
    main()

実行すると、外側の反復処理と内側の反復処理がネストされた形で、次のように表示されることが確認できるはずです。

外側の反復処理: 0
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 1
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 2
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 3
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
外側の反復処理: 4
         内側の反復処理: 0
         内側の反復処理: 1
         内側の反復処理: 2
スポンサーリンク

最後に

ここでは、Goのfor文を使ってネストされた反復処理を行ってみました。

for文の中でfor文のループ処理を行うことです。

他の言語でも同様なことをする処理は多く見られるので、特に目新しいものでは無いと思います。

Go
スポンサーリンク
CodeGraffitiをフォローする

タイトルとURLをコピーしました