C# の算術演算子
C# の四則演算
C# の数値型の変数の加減乗除の演算子は +、 -、 *、 / です。
剰余を求める演算子は % です。例えば、 5/2 は商が 2 で余り 1 です。従って、次の結果では 1 が出力されます。
Console.WriteLine($"{5 % 2}"); // 1
C# のインクリメント演算子
演算子 ++ を使うと数値に 1 を足します。 これをインクリメント演算子などと呼びます。インクリメント演算子はループカウンターなどでよく使われます。
インクリメント演算子は変数の前に置くのと後ろに置くので少し動作が違います。
変数の前に ++ を書くと、値を評価する前に 1 足します。
var i = 1;
Console.WriteLine($"{++i}"); // 2
Console.WriteLine($"{i}"); // 2
変数の後ろに ++ を書くと、値を評価してから 1 足します。
var i = 1;
Console.WriteLine($"{i++}"); // 1
Console.WriteLine($"{i}"); // 2
C# のデクリメント演算子
演算子 -- は数値から 1 を引く演算子で、デクリメント演算子と言います。
1 を足すか引くか違うだけで、インクリメント演算子と考え方は一緒です。
C# の checked 演算子
数値演算はデータ型によって、最大値、最小値が決まっており、それを超えるとオーバーフローが発生します。
例えば次のように、int 型の変数に最大値を設定しさらにそれに 1 を加えると、オーバーフローにより結果は負の数になります。
var i = int.MaxValue; // 2147483647
i = i + 1;
Console.WriteLine($"{i}"); // -2147483648
checked 演算子を使うと、オーバーフローが発生した場合に例外が発生します。これによってオーバーフローを検出できるようになります。
var i = int.MaxValue;
i = checked(i + 1);
// Unhandled exception. System.OverflowException:
// Arithmetic operation resulted in an overflow.
Console.WriteLine($"{i}");