C#で数値型・文字列型を扱う方法についてソースコード付きでまとめました。
【はじめに】変数と定数
商品ごとに消費税10%を計算するといったように、異なるデータに同じ計算処理を行うことがあります。
消費税の計算式
消費税 = 商品価格 × 0.10
上式の場合、計算式自体は変化しませんが、商品の価格は変化します。
このとき、変化する値が変数となります。
一方、変化しない値を定数といいます。
– | 消費税の計算式の場合 |
---|---|
変化する値「商品価格」 | 変数(Variable) |
変化しない値「0.10」 | 定数(Constant) |
動画解説
本ページの内容は以下動画でも解説しています。
【変数】宣言、初期化
変数を使用する際は、宣言と初期化を行う必要があります。
【宣言の例】
int var; char str;
varはint(整数)型の変数、strはchar(文字)型の変数を宣言しています。
変数を宣言する際に、同時に初期値を与えることができます。
これを変数の初期化といいます。
【初期化の例】
int var = 2; char str = 'X';
上記の例だと
varはint型の変数で初期値は5です。
strはchar型の変数で初期値は’X’です。
宣言した変数にデータを入れることを「代入」といいます。
代入を行うと初期化したときのデータは消えます。(上書きされる)
【代入の例】
var = 5; str = 'Y';
varに整数値5、strに文字’Y’を代入しています。
ここで注意すべきは、「違う型の変数には代入できない」ということです。
【代入できない例】
var = 'Y'; str = 5;
例えば、int型の変数varにchar型のデータ’Y’を代入することはできません。
【定数】宣言のみ
C# では、const というキーワードを用いることで、 定数を定義できます。
const int var = 5; // 宣言時のみ値を入れられる
【変数の確認】中身の表示、データ型の取得
System.Console.WriteLineメソッドで変数の中身をコンソール出力して確認できます。
【書式】
System.Console.WriteLine(変数名)
C#では、GetTypeメソッドで変数のデータ型を確認できます。
サンプルプログラムのソースコードは下記の通りです。
【変数の型】数値型の種類
数値型の変数の種類や違いをまとめると以下の通りです。
型の種類 | 内容 | 値の範囲 |
---|---|---|
byte | 8bit整数(符号付) | -128 ~ 127 |
int | 32bit整数(符号付) | -2,147,483,648 ~ 2,147,483,647 |
short | 16bit整数(符号付) | -32,768 ~ 32,767 |
long | 64bit整数(符号付) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
byte | 8bit整数(符号なし) | 0 ~ 255 |
ushort | 16bit整数(符号なし) | 0 ~ 65,535 |
uint | 32bit整数(符号なし) | 0 ~ 4,294,967,295 |
ulong | 64bit整数(符号なし) | 0 ~ 18,446,744,073,709,551,615 |
float | 32bit浮動小数点 | ±1.5 × 10^-45~ ±3.4 × 10^38 |
double | 64bit浮動小数点 | ±5.0 × 10^-324~ ±1.7 × 10^308 |
例えば、byte型は8bitの記憶領域サイズを確保して符号付き(±)で整数を表現します。
そのため、扱える値の範囲は-128~127となります。
実数(小数点以下も扱う数値)を使いたい場合は、floatかdouble型を使用します。
double型の方が記憶領域サイズが64bitと多い分、扱える実数の範囲が広いため、計算精度が高くなります。
そのため、float型の単精度浮動小数点数型、double型のことを倍精度浮動小数点数型といいます。
記憶領域サイズが大きいほど、扱える数値の範囲は大きくなりますが、メモリ領域を多く占領してしまいます。
よって、用途に応じて最適な数値の型を選択する必要があります。
【変数の型】文字型の種類
文字型の変数の種類や違いをまとめると以下の通りです。
型の種類 | 内容 |
---|---|
char | 16bit Unicode |
string | 文字列(UTF-16) |
string型は、文字列を扱える変数です。
次のように文字列をダブルクオーテーションで囲んで代入します。
string var = "たーのし!";
文字列オブジェクト「たーのし!」がメモリ領域上に確保されます。
変数varには、その参照が格納されます。
一方、char型では、1文字をシングルクォートで囲みます。
char var = 'x';
char型の場合は、変数varがメモリ領域上に確保されます。
そして、文字「a」のUnicodeが変数varに直接格納されます。
【変数の型】var型
C#のvar型変数は、コンパイル時に型の評価が自動的に行われます。
例えば、var型で宣言した変数に整数を代入すると、整数型の変数になります。
サンプルプログラムのソースコードは下記の通りです。
var型の変数に整数を入れた場合、int32型に自動的に設定されていることがわかります。
一方、文字列を入れた場合はString型になっています。
ただし、一度整数を代入した後に文字列を代入するとエラーがでます。
例)
var a1 = 1; a1 = "エクスカリバー"; // エラーになる
【NULL型】ヌル
NULL(ヌル)とは、「変数に何もない」ことを表すものです。
変数が空であることや、配列の終端を表したりするのに使います。
C#2.0以降では、値型の変数(int, doubleなど)はnull許容型で宣言することでnullを代入できます。
【数値型の場合】
型名? 変数名 = null;
【数値型以外の場合】
型名 変数名 = null;
コメント