Go言語   繰り返し

ホーム   Goチュートリアル


今までのサンプルプログラムでは、サイコロの目を複数回表示してきました。このように同じ処理を複数回行う場合は、同じ処理を複数行書くのではなく、繰り返し処理というもの行います。

for

Go 言語で繰り返し処理を行う場合は、for 文というもの使います。Go 言語には、他の言語にあるような while 文という繰り返し処理はありません。Go 言語の繰り返し処理は、すべて for 文を使って行います。

repeat.go


package main

import ("math/rand"
		"time"
		"fmt"
)

func main() {

	rand.Seed(time.Now().Unix())
	
	for i := 1; i <= 3; i++ {
		fmt.Printf("%d 回目のサイコロの目は %d です\n", i, rand.Intn(6)+1) 
	}
}
    

実行結果


1 回目のサイコロの目は 4 です
2 回目のサイコロの目は 5 です
3 回目のサイコロの目は 1 です
    

コード説明


	for i := 1; i <= 3; i++ {
    
  1. for 文は、3 つの部分に分かれています。1 つ目は、i := 1; の部分で、繰り返し処理のカウンターとなる変数を定義して、繰り返しがいくつから始まるのかをあらわす数値で初期化します。
  2. for 文の 2 つ目は、i <= 3; の部分で、繰り返しが続く条件を指定します。ここでは変数 i が、3 以下であれば繰り返しが続くことにしています。
  3. for 文の 3 つ目は、i++ の部分で、繰り返し処理が 1 回終わるごとに、i の値を 1 増やしています。++ 演算子は、変数の値を 1 増やします。変数の値を 1 減らす、-- 演算子もあります。
  4. for 文で行う処理は、{ と } の間に記述しなければなりません。{ と } の間には、複数行の処理も記述できます。

		fmt.Printf("%d 回目のサイコロの目は %d です\n", i, rand.Intn(6)+1)
    

fmt.Printf の中では、複数の書式が使えます。1 番目の %d には、変数 i の値が与えられ、2 番目の %d には、rand.Intn(6)+1 の値が与えられます。


}
    

for 文の処理は、からなず } で閉じなければなりません。

for 文のその他の記述方法

for 文を使って、他のプログラミング言語の while 文や、do-while 文を真似ることもできます。

while.go


package main

import ("math/rand"
		"time"
		"fmt"
)

func main() {

	rand.Seed(time.Now().Unix())
	
	i := 1
	for i <= 3 {
		fmt.Printf("%d 回目のサイコロの目は %d です\n", i, rand.Intn(6)+1)
		i++
	}
}
	

dowhile.go


package main

import ("math/rand"
		"time"
		"fmt"
)

func main() {

	rand.Seed(time.Now().Unix())
	
	i := 1
	for {
		fmt.Printf("%d 回目のサイコロの目は %d です\n", i, rand.Intn(6)+1)
		i++
		if i > 3 { break }
	}
}
	

if 文


		if i > 3 { break }
	

この部分は、if 文と呼ばれるもので、i > 3 という条件に合っていれば、{ } の中の処理が実行されます。break というキーワードは、その時点で繰り返しを終了させることを意味しています。なお、if 文については「条件分岐」の章で、詳しく説明します。


51574 visits
Posted: Jun. 20, 2019
Update: Jun. 20, 2019

ホーム   Goチュートリアル   目次