A Tour of Go をやる! その18 「For」 ~いよいよループ!~ 【Go言語/A Tour of Go】
2018年10月23日GoA Tour of Go,for,Goのお勉強,Go言語,ループ,制御文Go,A Tour of Go,for,Goのお勉強,Go言語,ループ,制御文
「A Tour of Go をやる!」シリーズの第18回目。
今回の内容はループ。というわけで、制御系に関するセクションに入ったようです。
今回進めるページは「For」
「A Tour of Go」の該当ページはこちら。
ページで説明されていること
ページで説明されていることを私なりにまとめてみます。
内容としては、主にForループで指定できる式(条件等)に関するものです。
- Forループにはセミコロンで区切った3種類の式を指定できる
- 初期化ステートメントはForのスコープ内だけで有効
- Forループは条件式の評価が false で終了
Forで指定できる3種類の式
Forで指定できる3種類の式と実際の書き方です。
式の種類 | 説明 |
---|---|
[初期化ステートメント] | ループ内だけで利用できる変数の宣言と初期化を行う。 初期化はループに入る直前に一度きり。 |
[条件式] | ループするたび処理の開始前に式が評価され、評価の結果が false ならループ終了。 |
[後処理ステートメント] | ループするたび処理の最後(繰り返す直前)に実行される。 |
// for の書き方
for [初期化ステートメント] ; [条件式] ; [後処理ステートメント] {
... (処理)
... (初期化ステートメントは for の {} 内のみ有効)
}
// e.g.
for counter := 0 ; counter < 10 ; counter++ {
... (counter は 0 から +1 ずつ変化する)
... (counter が 10 になると条件式が false (10<10=false) になるのでループが終わる)
... (つまり10回繰り返す)
}
言語仕様の確認
Forについて、言語仕様を見てみます。
For statements
A “for" statement specifies repeated execution of a block. There are three forms: The iteration may be controlled by a single condition, a “for" clause, or a “range" clause.
「for」ステートメントは、ブロックの繰り返し実行を指定します。 3つの形式があります。反復は、単一の条件、「for」句、または「range」句によって制御できます。(by Google Translated.)
https://golang.org/ref/spec#For_statements
ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
Condition = Expression .
これもまとめてみます。
- for はブロックを繰り返し実行する
- 3つの形式がある
- ループは、単一の条件、あるいは[ForClause] (条件式)と[RangeClause](後処理ステートメント)で制御できる
「3つの形式」についてはForの書き方パターンのことだと思われる。
Forの3つの形式
forの書き方(構成)パターンは次の通り。
// ① 条件式のみ
for [条件式] {
... (処理)
}
// e.g.
for a < b {
... (処理)
}
// ② 初期化+条件式+後処理
(少し前で書いたので割愛)
// ③ 配列等を基準としたループ
for [配列] {
... (処理)
}
// e.g.
var prime_ministers = []string{"Kisida", "Suga", "Abe", "Noda"}
for index, prime_minister := range prime_ministers {
... (処理)※配列の数だけループする
}
サンプルプログラムを見る
Forの使い方は一通り確認できたので、サンプルプログラムを見てみます。
0+1+2+3+…+9 の計算を、ループで実現してますね~。
さいごに
というわけで、Forループの基本な内容でした。
書き方やループ回数の数え方など、慣れないと少しややこしい部分もありますが、プログラミングでは使用頻度が高い(ほぼ必須?)構文なので、すぐに慣れられるんじゃないかなぁ?
こんな感じですが今回はここまで。
それではまた次回~٩(-ω-´)و
「Go言語のお勉強」インデックス
- うっしー「Go言語」に手を出す…(準備編)
- 「A Tour of Go」をやる!
- その1 「Hello, 世界」
- その2 「Packages」だってさ~
- その3 「Imports」いんぽーっ!
- その4 「Exported names」見えますか?
- その5 「Functions」 これは機能です。
- その6 「Functions continued」(?) 型しょ~略っ!
- その7 「Multiple results」 一粒で二度美味しい?
- その8 「Named return values」 お前は戻り値だ…
- その9 「Variables」入れ物!
- その10 「Variables with initializers」砂でも詰めるか…
- その11 「Short variable declarations」 略パート2!
- その12 「Basic types」 型抜きってあったな…
- その13 「Zero values」 生まれ持った中身は?
- その14 「Type conversions」 1は1.0になれる!
- その15 「Type inference」 君の型は…?
- その16 「Constants」 変えられねぇよ?
- その17 「Numeric Constants」 型無し野郎?
- その18 「For」 ~いよいよループ!~
- その19 「For continued」 ~ Forの続き! ~
「A Tour of Go」を題材にした記事は現在書き直し中…。_(:3」∠)_
ほとんどサボりが原因で尻切れとなっていたシリーズですが、最近になってようやく続きを書きたくなり再開をしようと思ったんです。が、古い記事を見返すとデータ・フォーマットが古かったり内容が分かり難かったりに気づきまして、、、この際だからと最初の記事から書き直しをすることになりました…
関連記事
A Tour of Go をやる! – その2 「Packages」だってさ~ 【Go言語/A Tour of Go】
「A Tour of Go をやる!」シリーズの第2回目。引き続き「A Tour ...
A Tour of Go をやる! – その6 「Functions continued」(?) 型しょ~略っ! 【Go言語/A Tour of Go】
「A Tour of Go をやる!」シリーズの第6回目。 前回進めた「Func ...
【Go言語】我慢我慢で最後にドーン! – Defer
Wordpressのバージョンが5.0になり、新エディタが実装されました。 新し ...
【Go言語】スコープ…エイm? な If - その2
え~、Go です。 前回の続きです。 というわけで、If の使い方その2ってこと ...
A Tour of Go をやる! その19 「For continued」 ~ Forの続き! ~ 【Go言語/A Tour of Go】
「A Tour of Go をやる!」シリーズの第19回。 今回もプログラミング ...
ディスカッション
コメント一覧
まだ、コメントがありません