@634

Javaの基本文法 その3

Advertisement

三項演算子

書式。
条件式 ? A:B
条件式がtrueならAの処理を、falseならBの処理をする。

使用例。
public class ThreeOpe{
    public static void main(String args[]){
        int a = 10;
        int b =  5;
        System.out.println(a>b?a:b);
    }
}
この場合 true(aのほうがbより大きい)だから aの値を出力。

結果
10

使用例

よく使うのは boolean式で条件判定するときに結果の条件が2通りで、それぞれ処理が1つの場合。簡単に言えば if文で書けるけれど if文使うまでもない時。
c = a>b?a:b;
って式は
if(a>b){
    c = a;
}else{
    c = b;
}
と同じ意味。三項演算子のほうがスッキリしている。

実験

どこまで応用がきくのか実験。とりあえず、
System.out.println(a>b?b+=10:a+=5);
こんな感じで。
結果、コンパイルエラー。予期しない型らしい。
意味不明だから、とりあえずカッコをつけてみる
System.out.println(a>b?(a+=10):(b+=5));
コンパイル、大丈夫になった。代入を先にしろってことか。

b+10とかa+5とかだったらそのまま通りそうなので、ちょっと挑戦。
System.out.println(a>b?a+10:b+5);
結果:成功。

条件に論理条件を指定してみる
System.out.println(a>b&&a==10?a:b);
とか
System.out.println(a>b&&a!=10?a:b);
とか。

コンパイル→ちゃんと動いた。

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール