C言語

【C言語 演算子】条件演算子(三項演算子)について解説【初心者】

c-language-conditional-operator.png

<この記事について>

  • この記事を読むことで、条件演算子がどんなものなのかを知ることができます。
  • 結論的には、条件演算子を使うことでif-else文とほぼ同じ処理が実行可能です。

こんにちは!こんばんは!

ちゃとらです(・ω・)/

今回は、知らない人もそこそこいると思われる条件演算子(三項演算子)について解説します。

ちゃとら

条件演算子は入門書籍にもあんまり載っていないイメージがあります。

条件演算子とは

説明

条件演算子とは条件式の真偽に応じてどちらかの式(値)を返すことができる演算子のことです。

処理としては、if-else文の処理とほぼ同じことができます。

条件演算子の記述方法

条件式 ? 式1 : 式2

条件演算子の解説
  • 条件式が真のとき、式1を実行(値であれば値を返す)
  • 条件式が偽のとき、式2を実行(値であれば値を返す)

サンプルコード

まずは、条件演算子を使って入力された数値を自然数かどうか判定するプログラムです。

#include <stdio.h>

int main(void)
{
	int i;
	printf("整数を入力:");
	scanf("%d", &i);

	// 条件演算子で自然数かどうかを判定
	printf("%dは%s\n", i, i > 0 ? "自然数" : "自然数ではない");

	return 0;
}
実行結果①(条件式が真のとき)

整数を入力:100
100は自然数

実行結果②(条件式が偽のとき)

整数を入力:-100
-100は自然数ではない

10行目に注目してください。

普通ならif-else文を使って2行~5行程記述しなければなりませんが、条件演算子を使うことによって記述を1行にまとめることができます。

数値配列の中から最大値を取り出すプログラムにも使えます。

#include <stdio.h>

#define SIZE 5

int main(void)
{
	int array[SIZE] = { 30, 11, 35, 23, 9 };
	int max = array[0];
	int i;

	for (i = 1; i < SIZE; i++)
	{
		// 条件演算子でmaxと配列のそれぞれの要素を比較
		max = (max < array[i] ? array[i] : max);
	}
	printf("max = %d\n", max);

	return 0;
}
実行結果

max = 35

これは14行目に注目で、やはりif文で記述する所を条件演算子で代用しています。

ちゃとら

使い道は限られますが、「そんなものがあるんだな」ぐらいで知っておくといいと思います。

まとめ

条件演算子について

  1. 記述方法 → 条件式 ? 式1 : 式2
  2. 解説:条件式が真あれば式1(値1)を実行し(返し)、偽であれば式2(値2)を実行する(返す)
ちゃとら

たま~に、条件演算子を使うことでプログラムコードを大幅に簡略化することができます。

今回はここまでです。

ちゃとら(・ω・)/