比較と関係
値が同じかどうかを調べる
リテラルにはブール型と呼ばれる特殊な論理値がありました。ブール型の値は、true (真)または false (偽)のいずれかの値を持ちます。
ブール型は整数や浮動小数点数とは異なり数値表現がないので算術演算はできません。主な用途は、比較演算などを行いその結果を true か flase で取得することです。 このようなブール型を返す演算には、等価演算子や関係演算子が挙げられます。これらを総称して比較演算子(Comparison operators)とも呼びます。
等価演算子(Equality operators)は、与えられた 2 つの項が同じかどうかを調べ、その結果を true または false で返します。
演算子 | 説明 |
---|---|
== | 等しければ true |
!= | 等しくなければ true |
これを利用すれば、数値を比較してその結果を得ることができます。これは、後ほど紹介する条件分岐に応用されます。
class Test { static void Main() { System.Console.WriteLine(10 == 10); System.Console.WriteLine(10 == 100); System.Console.WriteLine(10 != 10); System.Console.WriteLine(10 != 100); } }
等価演算子は数値以外にも適用できます。文字列が等しいと判断される条件は、同じ長さの文字列で、同じ位置に同じ文字が格納されいる状態、つまり論理的に文字列が等しければ等しいとされます。また、双方が null リテラルの場合も等しいと判断されます。
class Test { static void Main() { System.Console.WriteLine("KITTY" == "KITTY"); System.Console.WriteLine("KITTY" == "kitty"); System.Console.WriteLine("KITTY" == "KITTEN"); } }
コード2は文字列リテラルを等価演算子で比較しています。この場合、全ての文字が完全に一致する場合にのみ true を返します。大文字や小文字も区別します。
関係演算
数値のように大きさを持った値に対して、どちらがより大きいか、または小さいかを関係演算子(Relational operators)で求めることができます。
演算子 | 説明 |
---|---|
< | 小さければ true |
> | 大きければ true |
<= | 同じか小さければ true |
>= | 同じか大きければ true |
例えば、値がより小さいかどうかを判定する < 演算子は、左項が右項よりも小さければ true を返し、そうでなければ false を返します。等しい場合でも false になるので注意してください。一方 <= 演算子であれば、左項が右項と同じかより小さければ true となります。
これを利用すれば、数値を比較してその結果を得ることができます。これは、後ほど紹介する条件分岐などに応用されます。
class Test { static void Main() { System.Console.WriteLine(9 < 10); System.Console.WriteLine(10 < 10); System.Console.WriteLine(11 < 10); System.Console.WriteLine(9 <= 10); System.Console.WriteLine(10 <= 10); System.Console.WriteLine(11 <= 10); } }
コード3を実行すると、それぞれの比較結果が出力されます。< 演算子では左右の項が同じ値な場合は false になりますが、<= 演算子では true になります。こうしは判定の境目となる値の違いに注意してください。