カテゴリ: Go言語 更新日: 2026/01/11

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

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

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

※ Amazon広告リンク

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

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

Go言語では、if文の中で一時的な変数を定義して使うこともできます。これは「短縮記法」と呼ばれるテクニックです。


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

value := getScore() という形で、ifの条件式の中に変数を定義できます。この変数はifとelseの中でだけ使えるようになります。

この書き方を使えば、わざわざ事前に変数を宣言しなくても済み、スッキリしたコードになります。

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

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

Go言語では、条件式を1行で書くことができますが、コードが読みづらくなる場合もあります。

たとえば、処理の内容が長くなったり、条件が複雑になった場合は、無理に1行で書かずに、複数行に分けて書く方が良いです。

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言語には三項演算子の構文が存在しません。その代わりに、if文を工夫して使うことで、三項演算子のような条件分岐を実現できます。
関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語の構造体の初期化パターンとコンストラクタ的関数の書き方を徹底解説!初心者でもわかる基本と実用例
New2
Kotlin
Kotlinの例外処理とキャンセルの連携を完全ガイド!初心者でもわかるCoroutineExceptionHandlerの使い方
New3
Go言語
Go言語のクロージャとは?関数内関数の活用例と仕組み
New4
Swift
Swiftでエラー原因を可視化!ログとトレースのベストプラクティスを初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Kotlin
KotlinのChannelでデータをやり取りする方法を完全ガイド!初心者にもわかる非同期通信の基本
No.2
Java&Spring記事人気No2
Go言語
Go言語でのDB接続情報を環境変数で管理する方法|初心者でも安全に設定
No.3
Java&Spring記事人気No3
Kotlin
Kotlinのビルド設定エラーと解決法まとめ!初心者向けGradleトラブル対処ガイド
No.4
Java&Spring記事人気No4
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.7
Java&Spring記事人気No7
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.8
Java&Spring記事人気No8
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方

💻 作業効率アップに

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

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

※ Amazon広告リンク