[Processing] 関係演算子

プログラミングでは分岐や繰り返しの条件として必ずお世話になる関係演算子、または比較演算子ですが、Processingにも(JAVAですので)もちろんあります。今回は短めですがまとめます。

関係演算子(比較演算子)とは

コンピュータに仕事をさせる場合、様々な条件によって動作を変化させたり、繰り返したりします。コンピュータの最大の武器ですね。これらの条件は、かならず割り切れる関係でなければなりません。つまり、AとBが大きいか、小さいか、同じか、同じじゃないか。色々な比較の仕方がありますが、最終的にはそのように比較になってしまいます。その比較を記述する方法として、関係演算子を用いて関係を記述します。

関係演算子の種類

関係演算子は以下の6つです。

演算子 意味 用途
== 等しい 2値が同じかどうか調べる
!= 等しくない 2値が異なるか調べる
> 大きい 左辺の値が右辺の値より大きいか調べる
< 大きい 右辺の値が左辺の値より大きいか調べる
>= 等しいか大きい 左辺の値が右辺の値以上か調べる
<= 等しいか小さい 右辺の値が左辺の値以上か調べる

記述方法

Processingにおいての関係式の記述方法は、

値 関係演算子 値

比較したい値の間に、関係演算子を挟むことでその関係の結果を得ることができます。関係の結果は成功したら「true」、失敗したら「false」となります。この結果はboolean型になっており、boolean型の変数に格納することができます。つまり以下の2つのプログラムは、同じ挙動で実行される。

if(1 == 1){
  println("この2つの値は等しい");
} else {
  println("この2つの値は等しくない");
}
この2つの値は等しい
boolean result = 1==1;
if(result){
  println("この2つの値は等しい");
} else {
  println("この2つの値は等しくない");
}
この2つの値は等しい

このように、結果はboolean型で得られることが確認できます。

比較する値 – 基本型と参照型

比較する場合は、基本型の値を比較する。参照型の変数の値を比較することができますが、以前書いたにあるように、参照型はアドレス(番地)を記録しているにすぎないので、番地の比較になってしまいます。以下に具体的な例を示します。

int [] a = new int[1]; // 長さ1の配列を生成
a[0] = 1; // 配列の1つ目に1を代入
int [] b = a; // 配列変数にaをコピー
println(a==b); // aとbのアドレスが一致なのでtrue

b = new int[1]; // bに長さ1の配列を生成
b[0] = 1; // 配列の1つ目に1を代入
println(a==b); // aとbのアドレスが不一致なのでfalse

println(a[0]==b[0]); // aとbの配列の一番目の値は一致なのでtrue
true
false
true

このように、参照型のオブジェクトどうしの比較では、アドレスの比較になり、アドレスを共有している間は一致していますが、新しくオブジェクトを生成すると、別のアドレスになるため、不一致となります。String型に関しては参照型ですが、特別な仕組みのためか、どうやらその限りではないようです。

例外

boolean型はtrueとfalseの2つの値しか持たないため、大小の比較ができません。エラーになってしまって、実行前に停止しますので、気をつけてください。

おわりに

今回は関係演算子について、かるくまとめてみました。整数型や実数型の変数には注意はあまり必要ありませんが、boolean型、参照型の変数には注意が必要なようです。

コメントを残す

メールアドレスが公開されることはありません。