Go言語のfor文のあれこれ
Goでfor文を書いてみる
オーソドックスなfor文
- Goのfor文は、条件式の部分に()をつけない
- Go言語での繰り返し処理は、for文のみで、while文は存在しない
package main import "fmt" func main() { fmt.Println("iのループの結果は") for i := 0; i <= 5; i++ { fmt.Println(i) } } /*出力結果 iのループの結果は 0 1 2 3 4 5 */
While文をfor文で再現
package main import "fmt" func main() { fmt.Println("jのループの結果は") j := 0 for j < 5 { fmt.Println(j) j++ } } /*出力結果 jのループの結果は 0 1 2 3 4 */
すべての条件を省略すると無限ループ
- でも、ずっとループされては困るので、break文(後述)でループを終わらせる
package main import "fmt" func main() { k := 0 fmt.Println("kのループの結果は") for { fmt.Println(k) k++ if k == 10 {break} } } /*出力結果 kのループの結果は 0 1 2 3 4 5 6 7 8 9 */
break文
- break文以降の繰り返し処理が行われなくなる(ループを抜ける)
package main import "fmt" func main() { //5以降の処理が行われなくなる fmt.Println("lのループの結果は") for l := 0; l <= 7; l++ { if l == 5 { break } fmt.Println(l) } } /*出力結果 lのループの結果は 0 1 2 3 4 */
continue文
- 残り処理をスキップして次の繰り返しを始める
package main import "fmt" func main() { //3の倍数だけ表示 fmt.Println("mのループの結果は") for m := 1; m <= 10; m++ { if m%3 != 0 { continue } fmt.Println(m) } } /*出力結果 mのループの結果は 3 6 9 */
参考文献
松尾愛賀(2016)『スターティングGo言語』株式会社 翔泳社