forループ:すべてのパターン
従来型、while形式、無限ループ、rangeループ
「forループ:すべてのパターン」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。
Goにはループが1種類しかない
Goにはforループしかありません。whileもdo-whileもありません。forキーワードが、さまざまな形式によってすべての反復パターンに対応します。
Cスタイルの従来型forループ
従来の3つの節を持つループです。
for i := 0; i < 5; i++ {
fmt.Println(i)
}whileスタイルのループ
初期化節と後処理節を省略すると、whileに似たループになります。
n := 1
for n < 100 {
n *= 2
}無限ループ
すべての節を省略すると無限ループになります(終了するにはbreakまたはreturnを使用する必要があります)。
for {
msg := receive()
if msg == "quit" {
break
}
process(msg)
}スライスに対するrange
rangeはスライスを反復処理し、インデックスと値を返します。
fruits := []string{"apple", "banana", "cherry"}
for i, fruit := range fruits {
fmt.Printf("%d: %s\n", i, fruit)
}マップに対するrange
マップに対するrangeは、キーと値のペアを返します(反復順序はランダムです)。
scores := map[string]int{"Alice": 90, "Bob": 85}
for name, score := range scores {
fmt.Printf("%s: %d\n", name, score)
}文字列に対するrange
文字列に対してrangeを使うと、バイトではなくruneの値(Unicodeコードポイント)が得られます。
for i, r := range "Go!" {
fmt.Printf("index %d: %c\n", i, r)
}チャネルに対するrange
チャネルに対するrangeは、チャネルが閉じられるまで値を読み取ります。
ch := make(chan int, 3)
ch <- 1; ch <- 2; ch <- 3
close(ch)
for v := range ch {
fmt.Println(v)
}breakとcontinue
breakは最も内側のループを終了し、continueは次の反復へスキップします。
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue // skip even numbers
}
if i > 7 {
break // stop at 7
}
fmt.Println(i)
}ラベル付きbreak
ラベルを使うと、内側のループから外側のループを抜けられます。
outer:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
if i+j == 3 {
break outer
}
}
}クイックチェック
Goで無限ループを書くにはどうしますか?
まとめ:forループ
Goのforループは、あらゆる反復パターンに対応します。
- 従来型:
for i := 0; i < n; i++ - whileスタイル:
for condition - 無限ループ:
for {} - range:スライス、マップ、文字列、チャネルに対して使用
- ネストしたループでは、任意のラベルとともに
break/continueを使用
次は、Goのswitch文です。
よくある質問
「forループ:すべてのパターン」レッスンは無料ですか?
はい。「forループ:すべてのパターン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。
「forループ:すべてのパターン」で何を学びますか?
従来型、while形式、無限ループ、rangeループ ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Go Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「forループ:すべてのパターン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGo Academyレッスンでコードを書いて実行できますか?
はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- if文と初期化式
- forループ:すべてのパターン
- Goのswitch文
- break、continue、ラベル