変数はプログラム内でデータを保存、使用するための必須知識です。
C#だけでなく変数はいろいろな言語で使われるので頑張って覚えましょう。
変数とは?
変数は数値や文字といった値を入れておくための入れ物のようなものです。
入れた値を取り出すこともできます。
変数の宣言
変数を使うには宣言が必要です。
型名 変数名;
int number1; //数値(整数)を入れることのできる変数
double number2; //数値(小数)を入れることのできる変数
string name; //文字列を入れることのできる変数
bool flag; //真偽の値を入れることのできる変数
のように書きます。
変数を宣言するとその変数に値を入れることができるようになります。
変数の名前は任意で決めることができます。
C#のキーワード( int、string、classなど )となっているものは使えません。
アットマーク(@)を先頭に付けると使えるようになります。(@int、@class)
ただこれは他言語との互換性のためのもので、使わないほうがいいかもしれません。
int int; //これはダメ
int @int; //こうするとOKだけど紛らわしいので違う名前にした方が幸せ
値の代入
変数に値を入れることを代入といいます。
int number; // 変数の宣言
number = 10; // 10を代入
代入には代入演算子 = を使います。
左辺に変数、右辺に代入する値を書きます
変数 = 値;
C#では「=」は数学で使うイコールと意味が異なるので注意が必要です。
イコール(左辺と右辺が等しい)の意味をあらわすのは「==」になります。
変数の宣言と同時に初期値を代入することができます。
int number1 = 10;
double number2 = 1.25;
string name = "ヤスノート";
bool flag = false;
文字を代入するには、ダブルコーテーションで文字を囲って指定します。
変数を使って四則演算
変数を使って計算をしてみましょう。
//変数の宣言
int x;
int y;
int result; //結果を代入するための変数
//それぞれの変数に値を代入
x = 10;
y = 3;
//変数を使って計算
result = x + y; //足し算:xが10、yが3なので変数resultには13が代入される
result = x - y; //引き算:xが10、yが3なので変数resultには7が代入される
result = x * y; //掛け算:xが10、yが3なので変数resultには30が代入される
result = x / y; //割り算:xが10、yが3なので変数resultには3が代入される
result = x % y; //割った余り:xが10、yが3なので変数resultには1が代入される
//コンソール画面に結果を表示
System.Console.WriteLine(result); //1が画面に表示される
こんな感じで変数に対して計算したりもできます。
//変数の宣言
int x;
int y;
int result; //結果を代入するための変数
//それぞれの変数に値を代入
x = 10;
y = 3;
//変数を使って計算
result = x + y; //xが10、yが3なのでresultには13が代入される
result = result - y; //resultが13、yが3なのでresultには10が代入される
//コンソール画面に結果を表示
System.Console.WriteLine(result); //10が画面に表示される
データ型について
変数の宣言のところで型名がでてきました。
型を決めておくと、int型の変数に文字列を代入できてしまうなんてことがなくなりバグが起こりにくいということでC#は型のチェックがしっかりしています。
初めのうちはとりあえず、下の4つを覚えましょう。
- 整数を入れる場合は、int
- 小数を入れる場合は、double
- 文字を入れる場合は、string
- True、Falseの真偽を表す変数の場合は、bool
そのほかのデータ型についてはこちらの記事にまとめました。
変数の宣言ができる場所
変数の宣言はクラスの内側、またはメソッドの内側で行うことができます。
クラスの内側の場合、そのクラスのメンバー変数
メソッドの内側の場合、ローカル変数になる (ややこしいけどクラス内のメソッド内) 。
宣言する場所によってその変数を使用できる範囲が変わります。
class Class1
{
/*
* クラスの中で宣言した場合
* クラスのメンバー変数(フィールド)になる
*/
int member_x;
string member_s;
public void TestMethod()
{
/*
* メソッド内で宣言した場合、ローカル変数になる
* 宣言したメソッド内のみで使用できる
*/
int local_x = 10;
string local_s = "test";
System.Console.WriteLine(local_x);
System.Console.WriteLine(local_s);
//メソッド内からメンバー変数にアクセスできる
System.Console.WriteLine(member_x);
System.Console.WriteLine(member_s);
System.Console.WriteLine(member_y);
}
//これもクラスのメンバー変数
int member_y;
}
変数の使える有効範囲(ローカル変数なら宣言したメソッド内だけとか)のことをスコープといいます。
クラスのメンバーとして変数を宣言した場合は、さらに外部(他のクラス)から使用できるかを指定することができます(アクセサビリティという)。上のサンプルは何も指定しないのでそのクラス内のみのスコープになる。
詳細はクラスについて書いた記事を見てください。
C# 記事まとめページに戻る(他のサンプルコードもこちら)
コメント