カテゴリ: Go言語 更新日: 2026/03/05

Go言語の条件分岐やループの設計パターン集!初心者向けまとめ

Go言語の条件分岐やループの設計パターン集!初心者向けまとめ
Go言語の条件分岐やループの設計パターン集!初心者向けまとめ

先生と生徒の会話形式で理解しよう

生徒

「Go言語って聞いたことあるけど、どうやって条件分岐や繰り返し処理をするんですか?」

先生

「Go言語ではif文やfor文を使って、条件によって処理を変えたり、繰り返しの処理を書いたりできますよ。」

生徒

「そうなんですね!プログラミング初心者なので、基本から教えてください!」

先生

「もちろんです。それでは、Go言語での条件分岐やループの基本と、よく使われる書き方パターンを一緒に見ていきましょう!」

1. Go言語の条件分岐(if文)とは?

1. Go言語の条件分岐(if文)とは?
1. Go言語の条件分岐(if文)とは?

Go言語では、条件によって処理を変えるためにif文を使います。例えば、「雨が降っていたら傘を持っていく」というような場面をプログラムで表現できます。

基本的な構文は以下のようになります。


if 条件式 {
    // 条件式がtrue(真)のときに実行される処理
}

例えば、「数値が10より大きいかどうか」を判断するコードは次のようになります。


number := 15

if number > 10 {
    fmt.Println("10より大きいです")
}

10より大きいです

2. elseとelse ifで複数の条件をチェック

2. elseとelse ifで複数の条件をチェック
2. elseとelse ifで複数の条件をチェック

ifだけでなく、他の条件をチェックしたい場合はelseelse ifを使います。


score := 80

if score >= 90 {
    fmt.Println("とてもよくできました")
} else if score >= 70 {
    fmt.Println("よくできました")
} else {
    fmt.Println("がんばりましょう")
}

よくできました

このようにして、状況に応じたメッセージを出し分けることができます。

3. 条件分岐の設計パターン:フラグチェック

3. 条件分岐の設計パターン:フラグチェック
3. 条件分岐の設計パターン:フラグチェック

特定の状態を「フラグ」で管理する場合があります。たとえば、ログイン済みかどうかをチェックするコードです。


isLoggedIn := true

if isLoggedIn {
    fmt.Println("ようこそ、ユーザーさん!")
} else {
    fmt.Println("ログインしてください。")
}

ようこそ、ユーザーさん!

4. Go言語の繰り返し処理(for文)とは?

4. Go言語の繰り返し処理(for文)とは?
4. Go言語の繰り返し処理(for文)とは?

Go言語では、for文を使って繰り返し処理ができます。たとえば、「5回、同じメッセージを表示する」といった使い方です。


for i := 0; i < 5; i++ {
    fmt.Println("こんにちは!")
}

こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!

この例では、iの値が0から4になるまで繰り返しが続きます。

5. 配列やスライスの繰り返し

5. 配列やスライスの繰り返し
5. 配列やスライスの繰り返し

Go言語では、配列やスライスという複数の値のまとまりをfor文で繰り返すことができます。


colors := []string{"赤", "青", "緑"}

for _, color := range colors {
    fmt.Println(color)
}

赤
青
緑

rangeを使うと、自動的に順番に取り出して処理してくれます。変数名の前のアンダースコア(_)は「使わない値」を意味します。

6. 条件付きの無限ループ

6. 条件付きの無限ループ
6. 条件付きの無限ループ

無限ループを作りたいときは、forだけを使います。例えば、ずっと実行し続けるゲームのメインループのような場面です。


for {
    fmt.Println("これは無限ループです")
    break // 条件によってはbreakで終了できます
}

これは無限ループです

breakを使うと、繰り返しを途中で終わらせることができます。

7. よくあるパターン:条件+繰り返しの組み合わせ

7. よくあるパターン:条件+繰り返しの組み合わせ
7. よくあるパターン:条件+繰り返しの組み合わせ

条件分岐と繰り返し処理を組み合わせて使うパターンもよくあります。例えば、「奇数だけを表示する」処理は以下のように書けます。


for i := 1; i <= 10; i++ {
    if i%2 != 0 {
        fmt.Println(i)
    }
}

1
3
5
7
9

%は「余り」を出す演算子です。奇数は2で割って余りが1になります。

8. 条件が成立するまでループし続ける

8. 条件が成立するまでループし続ける
8. 条件が成立するまでループし続ける

ユーザーが正しい入力をするまで繰り返すような処理も、条件付きでbreakを使うことで実現できます。


reader := bufio.NewReader(os.Stdin)

for {
    fmt.Print("名前を入力してください: ")
    input, _ := reader.ReadString('\n')
    if strings.TrimSpace(input) != "" {
        fmt.Println("こんにちは、" + input)
        break
    }
}

bufiostringsは標準ライブラリで、ユーザーの入力を扱うのに便利です。TrimSpaceは余分な空白や改行を取り除きます。

まとめ

まとめ
まとめ

Go言語での条件分岐や繰り返し処理は、プログラムの流れを制御するための基本でありながら、設計パターンを知っておくことでより柔軟で読みやすく、安全なコードを書けるようになります。今回の記事では、if文を使った基本的な条件分岐、else ifelseによる複数条件の切り替え、フラグによる状態管理など、初心者でも理解しやすい形で整理して学んできました。特にGo言語はシンプルな構文が特徴のため、条件を正しく捉えて記述するだけで、自然に可読性の高いコードを書けるという魅力があります。

また、繰り返し処理においては、Go言語の代表的な構文であるfor文が非常に柔軟で、配列やスライス、マップなどのデータ構造と組み合わせて使うことで、多様な処理を直感的に表現できることがわかりました。rangeを使うことで手軽に要素を取り出しながらループでき、アンダースコアを使った不要な値の無視など、実務でも頻繁に使われるテクニックも自然と身につけられます。

さらに、無限ループや条件を伴ったループ脱出、条件分岐と繰り返しの組み合わせなど、プログラムの中で非常によく登場するパターンを実例を用いて確認できました。これらのパターンを理解しておくと、ユーザー入力の検証、データ一覧の処理、一定条件に基づいたループ制御など、多くの場面に応用できます。プログラムはただ書くだけでなく、「どうすれば読みやすく、拡張しやすくできるか」を考えながら設計することが重要であり、その意味でも条件分岐やループの設計パターンは基礎力として大きな価値を持ちます。

以下に、今回の内容をさらに深く理解するための追加サンプルコードを紹介し、条件分岐とループの組み合わせを応用したより実践的なパターンを確認していきましょう。

追加サンプルコード:条件分岐+ループ+スライスを使った検索処理


package main

import (
    "fmt"
    "strings"
)

func main() {
    names := []string{"たろう", "はなこ", "じろう", "たかし", "はなえ"}
    keyword := "はな"

    fmt.Println("検索キーワード:", keyword)
    fmt.Println("一致した名前一覧")

    found := false
    for _, name := range names {
        if strings.Contains(name, keyword) {
            fmt.Println("-", name)
            found = true
        }
    }

    if !found {
        fmt.Println("一致する名前はありませんでした")
    }
}

このサンプルでは、スライス内から特定のキーワードを含む名前を検索し、見つかった場合のみ結果を表示しています。strings.Containsを使って部分一致を判定しつつ、結果がひとつも見つからなかった場合はフラグを用いてメッセージを切り替えるという、条件分岐とループの組み合わせの基本が詰まった構造になっています。このようなパターンは、実際のアプリケーションでも検索機能やフィルタリング処理としてよく使われる形です。

プログラムを組み立てる際には、「何を条件に判断するのか」「どの値を繰り返し処理するのか」「どのタイミングでループを抜けるのか」といった視点を持つことで、より明確で整理されたコードを書くことができます。条件分岐やループは一見単純な構文ですが、実際にはほとんどのアプリケーションの基礎となっている重要な概念です。今回のパターンを理解することで、より複雑な処理を自然に表現する力が身につき、Go言語のプログラミングが一段と楽しくなるはずです。

また、初心者のうちは「ループがうまく回らない」「条件が正しく判定されない」といったつまずきが起こりやすいですが、そのたびに条件式を整理したり、データ構造を見直したりすることで、少しずつ確実な理解につながっていきます。実際に手を動かし、試行錯誤しながらコードを書くことで、教科書では得られない感覚的な理解も深まりますので、自分なりのパターンを作りながら身につけていきましょう。

先生と生徒の振り返り会話

生徒

「条件分岐とループって、ただの基本かと思っていましたが、実際にはたくさんのパターンがあるんですね!」

先生

「そうなんです。どのパターンを使うかによって、コードの読みやすさや動作の安定性が大きく変わってきますよ。」

生徒

「追加のサンプルのように、検索機能にも応用できるのはとても参考になりました!」

先生

「検索だけでなく、リストの絞り込みやログの解析など、いろいろな場面で応用できます。実際に書いていくうちに自然と理解が深まっていきますよ。」

生徒

「はい!条件分岐とループのパターンをもっと練習して、自分で設計できるようになりたいです!」

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語でif文とは何ですか?どういう場面で使いますか?

Go言語のif文は、条件に応じて処理を分けるための基本構文です。例えば「数値が10より大きい場合にメッセージを表示する」といった条件分岐に使います。

Go言語のelseやelse ifはどのように使いますか?

elseやelse ifは、if文だけでは判定できない複数の条件を順にチェックしたいときに使います。スコア評価など段階的な処理に便利です。
関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.8
Java&Spring記事人気No8
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法