カテゴリ: Go言語 更新日: 2026/07/09

Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法

Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法

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

生徒

「Go言語では、if文を短く1行で書くことってできるんですか?」

先生

「いい質問ですね。Go言語には、他の言語でよく使われる『三項演算子』はありませんが、似たようなことを1行で書く方法がありますよ。」

生徒

「三項演算子ってなんですか?そして、それがなくても大丈夫なんですか?」

先生

「三項演算子とは、条件 ? 値1 : 値2という形で、条件に応じて値を切り替える書き方です。Go言語ではこの構文は使えませんが、代わりにif文を工夫して、1行で似たような処理を書く方法があります。では、わかりやすく解説していきましょう!」

1. 三項演算子とは?Go言語にはない理由も解説

1. 三項演算子とは?Go言語にはない理由も解説
1. 三項演算子とは?Go言語にはない理由も解説

まずは「三項演算子」とは何かを整理しておきましょう。他のプログラミング言語(C言語・Java・JavaScriptなど)では、条件によって値を分けたい時に、短く書ける特別な記法が用意されています。


let result = (score > 60) ? "合格" : "不合格";

この書き方は「条件が真なら左、偽なら右の値を選ぶ」という意味になります。慣れると読み書きはとても早く、プログラムを短くまとめたい時に便利です。

ところが、Go言語にはこの三項演算子がありません。「便利なのになぜ?」と思うかもしれませんが、そこには理由があります。Goの開発思想には「コードは人が読めることが大切」という考え方があるため、パッと見て意味が分かりにくい書き方を増やさないようにしているのです。

つまり、Go言語はシンプルさと読みやすさを優先しているため、三項演算子をあえて採用していません。その代わり、if文を使って同じ結果を表現できます。書き方は少し違いますが、やれることは同じなので心配はいりません。

2. Go言語で条件式を1行で書くには?代替方法を紹介

2. Go言語で条件式を1行で書くには?代替方法を紹介
2. Go言語で条件式を1行で書くには?代替方法を紹介

「三項演算子が使えないと不便なのでは?」と感じる方もいますが、Go言語ではif文を工夫することで、同じことをシンプルに書けます。まずは、一般的な複数行の書き方から確認してみましょう。


var result string
if score >= 60 {
    result = "合格"
} else {
    result = "不合格"
}

初めて見る人でも分かりやすい書き方ですが、「短くまとめたい」と感じる場面もありますよね。そこで、同じ処理を1行にまとめると、次のようになります。


if score >= 60 { result = "合格" } else { result = "不合格" }

記述量が減り、コードがスッキリします。このように、Go言語でも条件によって値を切り替える処理を短く書けるのです。

ただし、1行で書けるのは処理が簡単な場合に限られます。処理内容が多くなってくると、逆に読みづらくなることもあるため、「読みやすさ」を意識しながら使い分けるのがポイントです。

試しに、実際に動くサンプルにしてみるとよりイメージしやすくなります。


package main

import "fmt"

func main() {
    score := 70
    var result string
    if score >= 60 { result = "合格" } else { result = "不合格" }
    fmt.Println(result)
}

このプログラムでは、scoreの値が60以上かどうか判断し、結果を1行で切り替えています。難しい知識がなくても使えるので、プログラミング初心者でも安心です。

3. 簡単な実行例で学ぼう!Go言語での条件式1行記法

3. 簡単な実行例で学ぼう!Go言語での条件式1行記法
3. 簡単な実行例で学ぼう!Go言語での条件式1行記法

仕組みを知るだけではイメージしづらいので、実際に動くプログラムを見てみましょう。なるべく短く、そして初心者でも読める形で書いています。


package main

import "fmt"

func main() {
    score := 75
    var result string
    if score >= 60 { result = "合格" } else { result = "不合格" }
    fmt.Println(result)
}

実行すると、条件に応じて文字が切り替わります。この例では、scoreが75なので、条件に当てはまり「合格」と表示されます。


合格

もし値を変えてみるとどうなるでしょう? 例えば、scoreを「40」にして実行すると、次のように表示が変わります。


score := 40
var result string
if score >= 60 { result = "合格" } else { result = "不合格" }
fmt.Println(result)

不合格

このように、1行の条件式でもきちんと結果を切り替えられます。「一定の条件でメッセージを分けたい」といった場面で手軽に使える書き方です。慣れるとサッと書けるので、ちょっとした判定にはとても便利です。

4. ifの中で変数を定義する方法(短縮記法)

4. ifの中で変数を定義する方法(短縮記法)
4. ifの中で変数を定義する方法(短縮記法)

Go言語には、if文の中で変数を同時に宣言して使える便利な書き方があります。これは「短縮記法」と呼ばれ、ちょっとした判定ならコードを短くまとめられます。


if value := getScore(); value >= 60 {
    fmt.Println("合格")
} else {
    fmt.Println("不合格")
}

value := getScore() の部分で変数を作り、そのまま条件式に使っています。この変数はifとelseのブロックの中でだけ有効になるため、余計なスコープを汚さずスッキリ書けるのが特徴です。

例えば、次のように書いた場合、事前に変数を宣言する必要がありません。


package main

import "fmt"

func main() {
    if score := 55; score >= 60 {
        fmt.Println("合格")
    } else {
        fmt.Println("不合格")
    }
}

この例では、scoreをifの中で宣言してそのまま条件に利用しています。小さな判定なら、この短縮記法を使うと見た目もスッキリし、読みやすさも保てます。

5. 1行で書く際の注意点

5. 1行で書く際の注意点
5. 1行で書く際の注意点

条件式を1行でまとめる書き方は便利ですが、どんな場面でも使えるわけではありません。特に、処理が長くなったり、分岐が増えてくると「一体何をしているのか」がぱっと見で分かりづらくなります。

初心者のうちは、読みやすさを意識して複数行に分ける方が安心です。無理に短くしようとして意味が伝わらなくなるのは、プログラムにとって逆効果です。

例えば、次のような書き方だと、1行の方がかえって読みづらくなります。


if score >= 60 && subject == "数学" { result = "特別合格" } else { result = "通常判定" }

ぱっと見ると何をしているのか分かりにくいですよね。これを複数行に直すと、処理がはっきり見えるようになります。


if score >= 60 && subject == "数学" {
    result = "特別合格"
} else {
    result = "通常判定"
}

結果は同じでも、こちらの方が落ち着いて読めるはずです。こうした読みやすさは、後から自分で見返した時にも大きな助けになります。

つまり、「短くできるか」よりも「読みやすいか」を優先するのが大事なポイントです。1行で書くのは簡単な処理だけ、複雑になりそうなら素直に複数行で書くようにしましょう。

6. Go言語で使えるその他の条件式の書き方

6. Go言語で使えるその他の条件式の書き方
6. Go言語で使えるその他の条件式の書き方

Go言語では、switch文を使って複数の条件分岐を書くこともできますが、1行記法では主にif-elseを工夫するのが基本です。

次のように、数値の範囲によってメッセージを変える例を見てみましょう。


score := 45
message := ""
if score >= 80 {
    message = "優秀"
} else if score >= 60 {
    message = "合格"
} else {
    message = "再試験"
}
fmt.Println(message)

このような場合は、無理に1行にせず、読みやすく整理するのがポイントです。

まとめ

まとめ
まとめ

Go言語では、三項演算子のような記法は使えませんが、if文を工夫することで1行記法として同様の処理が可能です。本記事では、Go言語に三項演算子がない理由から始まり、if文を使った短縮記法や、変数の定義を含めた1行での書き方まで丁寧に解説しました。
実際にGo言語で「条件によって文字列を切り替える」コードを1行で書く方法は、以下のような形でした。


if score >= 60 { result = "合格" } else { result = "不合格" }

さらに、次のようにif文の中で変数を定義し、そのスコープ内で処理を完結させる書き方もありました。


if value := getScore(); value >= 60 {
    fmt.Println("合格")
} else {
    fmt.Println("不合格")
}

このような短縮記法は、Go言語の読みやすさや明快さという設計方針に沿った書き方でもあります。三項演算子のような短い構文は一見便利に見えますが、可読性の観点では混乱を招くこともあり、Goではそれを避ける設計となっているのです。

また、Go言語では複雑な条件式や処理が増える場合は、無理に1行で書かず、複数行に分けて明確に記述することが推奨されます。このバランス感覚が、Go言語を扱う上での重要なポイントといえるでしょう。

本記事を通して、Go言語における条件分岐の書き方を深く理解できたかと思います。特に、JavaScriptやC言語などの経験者がGoに入門する際には、「三項演算子が使えない」という点が引っかかることがありますが、Goらしい書き方を知ることで、シンプルかつ意図が明確なコードが書けるようになります。

ぜひ、Goのコーディングスタイルに慣れていく中で、条件式の1行記法や短縮記法を適切に使いこなしましょう。そして、コードの可読性を保ちつつ、エレガントに処理を記述する力を磨いていくことが、実践的なGoプログラマーへの第一歩になります。

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

生徒

「Goって三項演算子がないのは不便かなって思ってたけど、if文で1行に書けるって知ってスッキリしました!」

先生

「そうですね。Go言語は明快なコードを書くことが大事なので、あえて三項演算子を排除しているんです。代わりにif文を工夫して使えば、同じように書けますよ。」

生徒

「あと、if文の中で変数を定義できる『短縮記法』も便利ですね!関数の戻り値を一時的に使いたいときに役立ちそうです。」

先生

「そのとおりです!短縮記法は一時的なスコープで使えるので、読みやすくスマートなコードになります。ただし、複雑な処理は無理に1行にせず、適切に分けるのがGoの流儀ですよ。」

生徒

「はい!読みやすさも大事にして、Go言語らしいコードを心がけていきます!」

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

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

※ Amazon広告リンク

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

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

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

Go言語では三項演算子が使えないって本当ですか?代わりに何を使えばいいのですか?

はい、本当です。Go言語には三項演算子の構文が存在しません。その代わりに、if文を工夫して使うことで、三項演算子のような条件分岐を実現できます。

Go言語でif文を1行で書く方法にはどんな書き方がありますか?

Go言語では、if文の中で代入処理だけを行うようにすれば、波かっこを使って1行で条件式を書くことが可能です。ただし可読性にも配慮しましょう。

Go言語で短縮記法って何ですか?どんなときに使うのが便利ですか?

短縮記法とは、if文の条件式内で変数を定義して、そのスコープ内でのみ使用できる方法です。関数の戻り値などをその場で評価して使いたいときに便利です。
関連セミナーのご案内

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

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

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

具体的な開発内容と環境

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

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

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

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

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

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

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

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

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

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

セミナー画像

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

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のswitchで複雑な条件分岐を整理するテクニック
New2
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New3
Go言語
Go言語のスライスを引数に渡す際の注意点!値渡しと参照渡しをわかりやすく解説
New4
Go言語
Go言語の構造体タグ(jsonタグなど)の使い方と活用例を初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
C#
C#の歴史とは?初心者向けに誕生理由と進化の流れをわかりやすく解説
No.3
Java&Spring記事人気No3
Swift
Swift StoryboardとAuto Layout|レスポンシブUIの作り方
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Swift
Swift入門ガイド|基本構文と書き方をマスターしよう
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swiftのcontinue・breakの使い方と注意点を徹底解説!初心者向け制御構文ガイド
No.8
Java&Spring記事人気No8
C#
C#の開発環境構築を完全ガイド!初心者でもわかる.NET SDKのインストール方法

💻 作業効率アップに

ノートPCを縦置きしてデスクを広く。
省スペースで片づく定番スタンド

UGREEN 縦型スタンドをAmazonで見る

※ Amazon広告リンク