C言語 入門 三項演算子の使い方を0から解説する

三項演算子が分からない人C言語
C言語の三項演算子を勉強したい人

三項演算子について詳しく勉強したいな。三項演算子で3つ以上の分岐を作れるみたいだけどよく分からない…🤔

こちらの悩みを解決します。

本記事の内容

・三項演算子とは?

・条件演算子とは?

・三項演算子のサンプルコード

・三項演算子を使う際の注意点

・3つの条件分岐がある三項演算子の練習

この記事を書いている自分は情報系大学生で、三ヶ月ほどでC言語の基礎を完璧に理解しました。勉強中に分からないことが多く、一日中プログラミングしていたこともあります。

今では、ブログでC言語について解説しています。

今回はそんな経験をもとに解説していこうかと。

当サイトでは、覚えるべきところを全てまとめているので、画面を撮影して何度も読み返すことをおすすめします。

それでは、解説していきます!

スポンサーリンク

三項演算子とは?

三項演算子とは、条件によって実行する命令を分けることができる演算子です。ifswitchと同じようなものですが、場合によっては簡単に書くことができるというのが特徴です。

条件演算子とは、三項演算子の別名です。

このサイトでは、三項演算子と呼んでいきますね。

三項演算子の使い方

三項演算子の使い方は、

条件式?式1:式2;

です。

条件式の部分は「~かどうか?」のような式を使用します。

式1、式2はどちらも命令ですね。

✔三項演算子の実行条件

条件式に条件が一致

➡式1を実行

条件式に条件が一致していない

➡式2を実行

※式1は「~かどうか?」の判別が正しい場合に実行し、正しくない場合は全て式2を実行します。

とりあえず、サンプルコードで練習してみましょう。

2つの値を比較するプログラムですね。

a=bになるまで入力ができるようにプログラムしています。

《三項演算子のサンプルコード》

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int a,b,judge;
    a = 6;
    b = 0;

    judge = 1;
    while (judge == 1)
    {
   	printf("入力:");
	scanf("%d",&b);

	a == b ? judge = 0 : printf("a!=b");
	printf("\n");
    }
    printf("a=b=%d", a);
}

a=bになるまで「judge=1」なので、while文のカッコ内で「judge=0」のときだけ「a=b=6」が出力できます。

《実行結果》

三項演算子を使ったプログラム

このようにwhile文をうまく使用すれば、6が入力されるまで何回でも入力できます。

三項演算子を使う際の注意点

シンプルで使いやすそうな条件演算子ですが、使う際のデメリットがあります。

✔三項演算子のデメリット

  • 他の記号と混ざりやすい(区別をつけにくい)
  • 3つ以上の分岐を作れない
  • 条件演算子の中に条件演算子を使用すると見にくくなる

上から順に解説します。

一つ目の「他の記号と混ざりやすい」というのは、C言語以外でも「?:」のような記号を使用するために起こってしまうものです。

C言語以外の言語を一緒に使う場合は、「if文」を使用するなどしてプログラムが分かりにくくならないようにしましょう。

二つ目で「3つ以上の分岐は作れない」と言っていますが、作ろうと思えば作れます。ただ、この場合はif文を使った方が簡単で見やすいプログラムをつくれます。

3つ以上の分岐を作るには、「条件演算子の中に条件演算子を使うこと」がポイントです。

条件演算子で3つの分岐のあるプログラムは

条件式1?式1:
              条件式2?式2:
              式3;

になります。

4つの場合は

条件式1?式1:
               条件式2?式2:
                              条件式3?式3:
                              式4;

です。

見ての通り、分岐がx個の場合はx-1個の条件式、x個の式が必要になります。

三つ目で書いている通り、見にくくなってしまうのですね。なので、このようにインデント(字下げ)すると見やすいのでおすすめです。

3つ以上の条件分岐があるサンプルコードを紹介します。

《3つ以上の条件分岐がある三項演算子のサンプルコード》

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
	int a,b,judge;
	a = 58;
	b = 0;

	judge = 1;
	while (judge == 1)
	{
		printf("bを入力:");
		scanf("%d",&b);

		a == b ? judge = 0 :
			a < b ? printf("a<b\n") :
			printf("a>b\n");
	}
	printf("a=b=%d", a);
}

単に「a!=b」だけでなくて、「a<b」、「a>b」のようにして出力できるパターンが増えました。

実行してみましょう。

《実行結果》

このように条件演算子でも3つ以上の分岐を作ることが得きます。

まとめ:三項演算子の使い方を0から解説する

条件分岐のできる関数は全て勉強しましょう。

下の記事でまとめています。

何かしらデメリットがあるときに、他の方法を知っていればとても便利ですよ。

また、ネット上のプログラムを見たときに、どんなプログラムであるか理解できるようになります。

今回は以上です!

次は、strcpyを勉強しましょう。

ではでは~👋