「Go/条件分岐と繰り返し」の版間の差分
削除された内容 追加された内容
タグ: 2017年版ソースエディター |
→繰り返し - for文: cleanup タグ: 2017年版ソースエディター |
||
71 行
</syntaxhighlight>
===
Goでは、For文がイテレート(繰返し;反復)する唯一の構文です(Goには、doやwhileはありません)。
{{Main|Go/文#For文}}▼
CやC++などのように
: <syntaxhighlight lang="go">for i := 0; i < n; i++ {
// 繰
}
</syntaxhighlight>
と書く方法と、C++の範囲For文やPythonのenumerate関数を伴ったFor文のように
: <syntaxhighlight lang="go">
for i, e := range collection {
// 繰
}
</syntaxhighlight>
という、スライスや配列、mapなどのコレクションから一つずつ要素を取り出していく方法があります。
まず、前者の方の使い方を説明します。
<syntaxhighlight lang="go">
for 初期化; 条件式; ポスト文 {
// 繰
}
</syntaxhighlight>
''初期化''および''ポスト文''は単純な文(簡単な変数宣言、インクリメント文、代入、関数呼び出し)でなくてはならない。また、条件式は論理式 (trueかfalseを返す式)でなくてはならない。For文は次のように実行される。
# 初期化
# 繰
# ポスト文
# 条件式が true ならばもう一度 2.に戻る。偽ならFor文を終了する。
また、C言語などと同様にGoでも、Break文やReturn文などがforブロック中({ } の内部)にあれば、すべての要素をイテレートする前にFor文から
;[https://play.golang.org/p/
package main
112 ⟶ 115行目:
func main() {
for i := 1; i <
fmt.Printf("%d * 2 = %d
}
}
</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
4 * 2 = 8
5 * 2 = 10
</syntaxhighlight>
|