Javaの基本文法 その3Advertisement三項演算子
書式。
条件式 ? 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!ログール |