本文へスキップ
BecomeCoder

Goコース · 第2章 制御構文 · レッスン6

くり返し ― for(Goのループはこれだけ)

ブラウザで完結

導入

Go のループfor1種類だけです。他言語の while に当たるものも for で書きます。書き方を変えるだけで3つの使い方をカバーします。

説明

① 回数を数えるループ(初期化; 条件; 更新)

package main

import "fmt"

func main() {
    for i := 1; i <= 5; i++ {
        fmt.Println(i, "回目")
    }
}

② while のように条件だけ

n := 1
for n < 100 {
    n = n * 2
}
fmt.Println(n) // 128

③ 無限ループ(break で抜ける)

count := 0
for {
    count++
    if count == 3 {
        break // ループを抜ける
    }
}
  • i++ は「1増やす」。Go には ++i のような前置はありません。
  • break でループを抜け、continue でその周だけ飛ばして次へ進みます。

やってみよう

①の i <= 5i < 5 に変えると、5回目が表示されなくなります。ループの「終わり方」は境界条件でよく間違えるので、条件を紙に書いて確かめる癖をつけましょう。

実際に動かしてみよう

下のエディタにGoを書いて「実行」を押すと、学習用シミュレータが fmt の出力を表示します(本物のGoコンパイラではなく、教材の範囲を再現した軽量エンジンです)。スライス・マップ・構造体・インターフェース・goroutine/channel なども動きます。本文の例を書き換えて動かしてみましょう(並行処理の実行順は決定的に再現しているため、本物のインターリーブとは異なる場合があります)。

Go — ブラウザ内で実行(学習用シミュレータ)

Goの教材サブセットを動かす学習用シミュレータを読み込みます(本物のGoコンパイラではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。