こんにちは!こんばんは!
ちゃとらです(・ω・)/
今回は、知らない人もそこそこいると思われる条件演算子(三項演算子)について解説します。
ちゃとら
条件演算子は入門書籍にもあんまり載っていないイメージがあります。
スポンサーリンク
条件演算子とは
説明
条件演算子とは条件式の真偽に応じてどちらかの式(値)を返すことができる演算子のことです。
処理としては、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文で記述する所を条件演算子で代用しています。
ちゃとら
使い道は限られますが、「そんなものがあるんだな」ぐらいで知っておくといいと思います。
まとめ
ちゃとら
たま~に、条件演算子を使うことでプログラムコードを大幅に簡略化することができます。
今回はここまでです。
ちゃとら(・ω・)/
スポンサーリンク