Javaをはじめよう!第18回~三項演算~

2016/05/16

はじめに

前回は算術昇格についてご紹介いたしました。

今回は三項演算について詳しくご紹介いたします。

演算子

三項演算

三項演算は条件演算とも呼ばれていて、条件によって結果が変わります。また、三項演算はその名の通り3つの値を使用して演算を行います。
ソースを見てみましょう。

Sample32.java

package chap02;

class Sample32{
	public static void main(String[] args){
		int i = 10;

		String ans =  i == 10 ? "正解" : "不正解";		//三項演算

		System.out.println(ans);
	}
}

実行例

正解

 

三項演算の処理の流れを説明します。
・まず、『i == 10』が評価されて、trueなら『?』と『:』の間の、今回は文字列がString型のansへ代入されます。もし、falseであれば、『:』の右辺に記述されている文字ansへ代入されます。

・条件分岐(Sample32.java であれば、『i == 10』)は、boolean型の解が求められる式ではなくてはいけません。そして、trueまたはfalseの場合に表示される値(Sample32.java であれば、”正解”もしくは”不正解”)は、最初に宣言した(Sample32.java であれば、String ans)データ型でなければいけません。

このように〜ならば〜するという条件演算となります。

練習問題

次の三項演算の実行結果はどうなるでしょうか。

package chap02;

public class Ex12 {

	public static void main(String[] args) {
		int num = 10;

		String ans1 = ++num == 10 ? "正解" : "不正解";
		String ans2 = num++ <= 10 ? "正解" : "不正解"; String ans3 = ++num > 10 ? "正解" : "不正解";
		String ans4 = num + 3 != 10 ? "正解" : "不正解";
		String ans5 = ++num <= 10 ? "正解" : "不正解";

		System.out.println(ans1 + " ");
		System.out.println(ans2 + " ");
		System.out.println(ans3 + " ");
		System.out.println(ans4 + " ");
		System.out.println(ans5);
	}

}

正解と解説

【正解】

不正解
不正解
正解
正解
不正解

【解説】
三項演算部分から流れを見ていきます。
変数numに対し前置型インクリメント、後置型インクリメント、『+』演算子を使って、10と比較しています。

・まず、最初は、『11 == 10』なのでfalseとなり、不正解となります。
・次に、『11 <= 10』なので、falseとなり、不正解と表示されます。
・次に、『13 > 10』なので、trueとなり、正解と表示されます。
・次に、『13 +3 != 10』なのでtrueとなり、正解と表示されます。
・次に、『14 <= 10』なので、falseとなり、不正解と表示されます。

さいごに

今回は、三項演算について詳しく紹介いたしました!

次回はビット演算について詳しく紹介いたします!

投稿者情報

パンダマン

パンダマン

パンダマンです。

主にWebシステム開発等を担当しております。
設計・プログラミング。サーバー管理なんでもやります。

今、担当しているプロジェクトではJavaの今まで触れたことのないフレームワークを使うことになり勉強中です。
学生にC言語のプログラミングの基礎を教えたりもしています。
最近「キングダム」にはまっています。

>> パンダマンが執筆した他の記事を読む

法人向け人気レンタルサーバー
法人向け人気専用サーバー
個人向け人気レンタルサーバー