第5回 – IF(条件分岐)2


引き続き条件分岐です。
前回によく似ていますが、円が徐々に大きくなった後、徐々に小さくなる、というのを繰り返す例を示します。
コメントは、前回と同じ部分は省略しています。

int ellipseSize = 50;
int addSize = 1;

void setup(){
  size(800,800);
  background(0);
}

void draw(){
 
  background(0);
  ellipse(400,400,ellipseSize,ellipseSize);
  
  
  // この下で、ellipseSizeにaddSizeを足している。
 // 最初はaddSizeの中は1なので、1増える。
  ellipseSize = ellipseSize + addSize;	
  
  
 //この下のif文では、もしellipseSizeが200よりも
 //大きかったら、addSizeに -1を掛けろ、
 //という命令が記されている。
    if(ellipseSize > 200){		
    addSize = addSize*(-1);
  }
  
  //←この下のif文でも同じく、ellipseSizeが50よりも小さかったら、
  //addSizeに -1 を掛けろ、という命令が記されている。
  if(ellipseSize < 50){			
    addSize = addSize*(-1);
  }
  
}

この2つのif分に注目してください。

 
    if(ellipseSize > 200){		
    addSize = addSize*(-1);
  }
  
  if(ellipseSize < 50){			
    addSize = addSize*(-1);
  }
  

if()の中の条件は違うが、ブロック { }の中で行われている処理は全く同じなので、実は下のようにまとめてこのように書くことが出来できます。

   
    if(ellipseSize > 200 | ellipseSize < 50){
    addSize = addSize*(-1);
  }
  

この | は、「もしくは」という意味で、今回の場合、ellipseSizeが200よりも大きいか、50よりも小さいかのいずれかでifの中身が実行されます。

この「もしくは」は、if文の中で実行している内容が全く同じ箇所がある場合にはたいてい使えるはずなので、もし自分でプログラムを書いていて内容が全く同じif文が出てきたら | が使えないかを考えてみてください。

問題

 例2のif文2つを、を | を使った形に書き換えなさい。