概要
三項演算子について紹介します。
書式
(条件文) ? (条件文がtrueの時の値) : (条件文がfalseの時の値)
記述例
a,bの値が一致している場合には、変数
s
に文字列 "equal" を代入し、一致していない場合は文字列 "not-equal" を代入します。
string s = (a == b) ? "equal" : "not-equal";
プログラム例
UI
下図のフォームを作成します。フォームにボタンを1つ、テキストボックスを2つ配置します。
コード
下記のコードを記述します。
using System;
using System.Windows.Forms;
namespace ConditionalOperatorDemo
{
public partial class FormSimpleConditionalOperator : Form
{
public FormSimpleConditionalOperator()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int a = 3;
int b = Convert.ToInt32(textBox_input.Text);
textBox_output.Text = (a == b) ? "同じです" : "違います";
}
}
}
解説
上部の入力用テキストボックスから値を取得します。値を数値に変換して3と同じであれば、下部のテキストボックスに「同じです」のメッセージを
出力します。値が違う場合は「違います」のメッセージをテキストボックスに表示します。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
デフォルトでは上部のテキストボックスに"5"が入力されていますので、そのまま[button1]をクリックします。
「違います」のメッセージが下部のテキストボックスに表示されます。
上部のテキストボックスの値を"3"に変更して、[button1]ボタンをクリックします。
下部のテキストボックスに「同じです」のメッセージが表示されます。
三項演算子を利用して出しわけの処理を実装できました。
補足
三項演算子はif文を省略できシンプルに処理を記述できるため、使い方によっては便利ですが、
C/C++, C#以外の他の言語では使われない演算子のため、コードの可読性が落ちる問題があります。
複雑な処理を三項演算子を利用して実装する場合は可読性も考慮してコードを記述する必要があります。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2021-01-25
作成日: 2021-01-24