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

2016/05/16

はじめに

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

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

演算子

三項演算

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

Sample32.java

[code]
package chap02;

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

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

System.out.println(ans);
}
}
[/code]

実行例

正解

 

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

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

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

練習問題

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

[code]
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);
}

}
[/code]

正解と解説

【正解】

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

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

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

さいごに

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

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

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