この章のテーマ §
四則演算と剰余演算の方法を学習します。これらの計算が目的のプログラムを作成することは希ですが、他の処理の手段として使われることはとても多いと言えます。
前提知識 §
Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, int型, double型
解説 §
C#で足し算を行う方法はいろいろあります。
最もシンプルに行うには"+"演算子を使って"x+y"のように書きます。
結果を変数に代入したければ、"r=x+y;"のように書きます。
他の演算も同様で、"+"の代わりに他の記号を使います。引き算は"-"、かけ算は"*"、割り算は"/"、剰余は"%"を使用します。
ただし、これらの演算は様々な制約の中で行われますので、意図した通りの結果にならない場合があります。たとえば、整数型の割り算で小数点以下の結果を得ることはできません。オーバーフローチェックが行われないコンテキストでは、計算が型の最大値を超えても意味不明の値のまま計算が継続されます。
罠の数々 §
- 足し算の"+"には文字列を連結するという機能もある。混同しないようにしよう
- サンプルソースの実行結果を見ると、整数(int)と実数(double)では割り算のみ結果が違うことが分かる。この計算は割り切れないので小数点以下の値を発生させるが、整数型は小数点以下を扱えないので消えてしまう
- 剰余とは整数の計算でのみ意味を持つ演算なので、実は実数の剰余を得る処理はあまり意味がない。実際には整数の剰余を求めているだけである
- これらの演算子は四則演算を行う唯一の方法ではない。1を足すだけなら++演算子の方が便利ということも多いし、多数のデータの合計が欲しい時はLINQのSumメソッドを使うこともできる (これらの機能はここで理解しなくても良いが、いずれそれらを学ぶときに少しだけ思い出そう)
参考リンク §
算術演算子 (C# リファレンス)
サンプルソース: FourArithmeticOperations §
int a = 10;
int b = 3;
double c = 10.0;
double d = 3.0;
Console.WriteLine($"a+b={a + b}");
Console.WriteLine($"c+d={c + d}");
Console.WriteLine($"a-b={a - b}");
Console.WriteLine($"c-d={c - d}");
Console.WriteLine($"a*b={a * b}");
Console.WriteLine($"c*d={c * d}");
Console.WriteLine($"a/b={a / b}");
Console.WriteLine($"c/d={c / d}");
Console.WriteLine($"a%b={a % b}");
Console.WriteLine($"c%d={c % d}");
実行結果 §
a+b=13
c+d=13
a-b=7
c-d=7
a*b=30
c*d=30
a/b=3
c/d=3.3333333333333335
a%b=1
c%d=1
リポジトリ §
https://github.com/autumn009/CSharpPrimer2
練習問題 §
以下のプログラムの実行結果を予測してみよう。
Console.WriteLine(2*3+4*5);
- 2345
- 26
- 50
- 70
- エラー
[[解答]]