Menu
Coddy logo textTech

三項演算子

CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 29/63。

三項条件演算子は、if-else文を1行で簡潔に表現するための手法です。

構文は以下の通りです:

condition ? value_if_true : value_if_false;

例を見てみましょう。まず、従来のif-else文を紹介します:

int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

それでは、三項演算子を使って書き換えてみましょう:

int max = (a > b) ? a : b;

この例では:

  • a > b が条件です
  • 条件が真(true)の場合、a が返されます
  • 条件が偽(false)の場合、b が返されます

三項演算子は入れ子にすることもできますが、コードが読みにくくなる可能性があります:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
challenge icon

チャレンジ

簡単

条件演算子を使用して、数値が正、負、またはゼロであるかを確認するプログラムを作成してください。プログラムは以下の手順で行う必要があります:

  1. ユーザーから整数の入力を受け取ります。
  2. 条件演算子を使用して、その数値が正、負、またはゼロのいずれであるかを判定します。
  3. 結果を "The number is [positive/negative/zero]" という形式で出力します。

チートシート

三項条件演算子は、if-else文を1行で表現するための簡潔な方法を提供します。

構文:

condition ? value_if_true : value_if_false;

従来のif-elseと三項演算子を比較した例:

// 従来のif-else
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

// 三項演算子
int max = (a > b) ? a : b;

三項演算子は入れ子(ネスト)にすることもできますが、可読性は低下します。

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

自分で試してみよう

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    
    // 以下にコードを書いてください
    char* result = 
    
    printf("The number is %s\n", result);
    return 0;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン