C 言語 | フロー制御 | 条件演算子
条件の結果に応じて式を選択する条件演算子について説明する。if 文とは異なり、条件演算子は 2 つの式から 1 つを選ぶ。
3 項演算子
C 言語の演算子の多くは、1 つのオペランドを受け取る単項演算子か、2 つのオペランドを受け取る 2 項演算子である。条件演算子 ? : は、3 つのオペランドを受け取る 3 項演算子である。
条件演算子を使うと、if 文に似た処理を 1 つの式で表現できる。小規模な分岐に適している。たとえば、n が 0 でなければ z に x を代入し、そうでなければ y を代入する。
条件演算子
条件式 ? 式1 : 式2
条件式が真であれば式 1 を選択し、その値を返す。そうでなければ式 2 を選択する。z に代入する値を条件で分岐する場合は、次のように書く。
z = n ? x : y;
n が真なら z に x を代入し、そうでなければ y を代入する。同じ処理は if-else 文でも書けるが、条件演算子のほうが簡潔である。
コード 1
#include <stdio.h>
int main() {
int iVariable;
printf("Please input a number 0 or some else>");
scanf("%d" , &iVariable);
printf("An input value is %s.\n" , iVariable ? "True" : "False");
return 0;
}
このプログラムは、ユーザーから 0 または別の値を受け取り、その値が真か偽かを表示する。iVariable ? "True" : "False" は、iVariable が真なら "True"、そうでなければ "False" を返す。printf() の変換指定子 %s によって、選択された文字列を表示する。