カテゴリ: C言語 更新日: 2026/02/11

C言語の条件(三項)演算子(? :)の使い方を完全ガイド!初心者でもわかる基本と例

C言語の条件(三項)演算子(? :)の使い方
C言語の条件(三項)演算子(? :)の使い方

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

生徒

「C言語の演算子を勉強していたら、条件演算子って言葉を見つけました。これは何に使うんですか?」

先生

「条件演算子は、C言語の中でとても便利な演算子で、三項演算子とも呼ばれます。」

生徒

「三項ってことは、三つの要素を使う演算子なんですね?」

先生

「そうです。条件を判定して、結果によって値を選ぶことができます。if文とよく似ていますが、短く書けるため便利なんです。」

1. 条件(三項)演算子(? :)とは?

1. 条件(三項)演算子(? :)とは?
1. 条件(三項)演算子(? :)とは?

C言語には非常に多くの演算子があります。その中でも、条件に応じて結果を切り替えるときに便利なのが、条件(三項)演算子です。書き方は少し特殊ですが、慣れるととても読みやすくなります。条件演算子は、次のような形で使います。


条件式 ? 真の場合の値 : 偽の場合の値

この一文で、if文のような条件判定が行えます。プログラムの中で短い条件分岐をしたいときに、コードが読みやすくなるので、C言語の学習者にも人気のある書き方です。

2. if文との違いをやさしく解説

2. if文との違いをやさしく解説
2. if文との違いをやさしく解説

条件演算子は、if文と同じように条件を判定できます。しかし、if文は複数行になるのに対し、条件演算子は一行で書けます。同じ処理を比較してみると、違いがわかりやすいです。

例えば「変数aが0より大きいなら真、そうでなければ偽」と判定したいとき、if文では次のようになります。


int a = 5;
if(a > 0)
{
    printf("真です\n");
}
else
{
    printf("偽です\n");
}

この処理を条件演算子で書くと、たった一行で同じ結果になります。


int a = 5;
printf(a > 0 ? "真です\n" : "偽です\n");

文章として読むと、「aが0より大きいなら真です、そうでなければ偽です」という意味になります。プログラムの見た目がすっきりし、簡単な条件判定であればとても読みやすくなるため、条件演算子はC言語の定番テクニックです。

3. 実際に条件演算子を使ってみよう

3. 実際に条件演算子を使ってみよう
3. 実際に条件演算子を使ってみよう

ここでは、変数の値を見て結果を切り替える例を紹介します。初心者でも理解しやすいように、数字を判定するシンプルなサンプルにしました。


#include <stdio.h>

int main(void)
{
    int score = 80;
    char *result;

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

    printf("結果は %s です\n", result);

    return 0;
}

このプログラムでは、整数のscoreが60以上であれば「合格」、60より小さければ「不合格」という文字が変数resultに代入されます。


結果は 合格 です

条件演算子は、数値だけでなく文字列や変数にも使えるため、C言語のプログラムでとても応用範囲が広いです。

4. 条件演算子を使うと読みやすくなる例

4. 条件演算子を使うと読みやすくなる例
4. 条件演算子を使うと読みやすくなる例

プログラムが複雑になると、if文が並んで読みづらくなることがあります。そんなとき、簡単な分岐なら条件演算子に置き換えることで、短く整理されたコードになります。

例えば、整数が偶数か奇数かを判定する処理を考えます。


int num = 7;
printf((num % 2 == 0) ? "偶数です\n" : "奇数です\n");

この例では、numを2で割った余りが0なら偶数、そうでなければ奇数と表示します。一行で処理できるので、プログラム全体の見通しが良くなり、C言語のコード管理がやさしくなります。

5. 入力された値で条件を切り替える例

5. 入力された値で条件を切り替える例
5. 入力された値で条件を切り替える例

さらに応用として、ユーザーから入力された値によって表示を変えるサンプルも紹介します。コンピューターの仕組みが分からない人でも、ここで操作の流れをイメージしやすくなるはずです。


#include <stdio.h>

int main(void)
{
    int age;
    printf("年齢を入力してください:");
    scanf("%d", &age);

    printf("%s\n", (age >= 20) ? "成人です" : "未成年です");

    return 0;
}

年齢を入力してください:18
未成年です

このように、現実の判断をプログラムにすることで、初心者でもC言語が何をしているか想像しやすくなります。

6. 三項演算子の読み方と注意点

6. 三項演算子の読み方と注意点
6. 三項演算子の読み方と注意点

条件演算子は便利ですが、使いすぎると逆に読みづらくなることがあります。特に長い条件や複雑な処理を一行に詰め込みすぎると、プログラムを理解しづらくなるので、短い分岐に使うのが理想的です。

C言語の学習では、if文と条件演算子を状況によって使い分けることが大切です。短く書きたいときは条件演算子、複雑な処理はif文という考え方が初心者には分かりやすい方法です。

カテゴリの一覧へ
新着記事
New1
C++
C++のメンバアクセス演算子を完全解説!初心者でもわかる . → :: の使い方まとめ
New2
Rust
Rustの文字列を極める!&str(文字列スライス)の基本概念とString型との違い
New3
C++
C++のキャスト演算子を完全解説!dynamic_cast・static_cast・const_cast・reinterpret_castを初心者向けに説明
New4
C++
C++開発のIDE選びを完全ガイド!初心者でもわかるCLion・Eclipse CDT・Qt Creator比較
人気記事
No.1
Java&Spring記事人気No1
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.2
Java&Spring記事人気No2
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.3
Java&Spring記事人気No3
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.4
Java&Spring記事人気No4
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C++
C++リンカとコンパイラのオプション設定を完全ガイド!初心者にもわかる開発環境の基礎
No.8
Java&Spring記事人気No8
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作