P5

三項演算子

三項演算子

三項演算子 ? を使うことで、if else 文のような条件分岐を簡潔に記述できます。

color c;
background( 245 );
colorMode( HSB, 100 );
noStroke();
size( 600, 400 );

for( int i=0; i<10; i++ ){
  c = ( i % 2 == 0 ) ? color(0,70,100,100) : color(60,40,100,60);
  fill( c );
  ellipse( i*60, 200, 90, 200 );
}

8行目に三項演算子が使われています。表記形式としては

 ( 条件式 ) ? 条件が真の場合の値 : 条件が偽の場合の値

のようになっています。条件式で使われている % は割り算の余りを求めるための記号で、i を 2 で割った余りが 0 に等しいか、という条件をこの式は表現しています。i が偶数の時にこれは真となり、奇数の時に偽となります。したがって、for 文の中で i が偶数であるとき c には color(0,70,100,100) が代入され、奇数の時は color(60,40,100,60) が代入されます。結果として、色が交互に変化するような絵が描かれます。


実行例

同じ内容を if 文を使って書くと以下のようになります。

color c;
background( 245 );
colorMode( HSB, 100 );
noStroke();
size( 600, 400 );

for( int i=0; i<10; i++ ){
  if( i % 2 == 0 ){
    c = color(0,70,100,100);
  } else {
    c = color(60,40,100,60);
  }
  fill( c );
  ellipse( i*60, 200, 90, 200 );
}

実行結果は上と同じです。三項演算子を使うと、条件分岐が1行で、簡潔に記述できることがわかると思います。

コメント

Copied title and URL