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となり、不正解と表示されます。
さいごに
今回は、三項演算について詳しく紹介いたしました!
次回はビット演算について詳しく紹介いたします!