【C#入門】変数とは?使い方をサンプル付で徹底解説!

悩んでる人

C#の変数って何?どうやって使えばいいの?

悩んでる人

型とかスコープとか言葉が難しくて、全然理解できない…

C#を勉強し始めたばかりだと、「変数」という言葉が出てきた瞬間に頭が止まる人も多いと思います。

プログラミングの基礎は「変数」から始まると言っても過言ではありません。

おしけん

変数はプログラムの基礎中の基礎です!ここをしっかり理解するだけで、C#の学習がグッとラクになりますよ!

本記事では、C#の変数について、宣言方法・データ型・スコープ・定数まで、サンプルコードつきでわかりやすく解説します。

「なんとなくわかった気がするけど、実際に使えるか不安」という方もぜひ参考にしてみてください!

この記事を書いた人
  • システムエンジニア10年目
  • 会社員3年⇒フリーランス7年目
  • 保険系 / 物流系 / 鉄道系 / 小売系などのシステム開発に従事
  • プログラミング講師
目次

【C#】変数とは何か?

変数とは、値を一時的に保存しておく「箱」のようなものです。

プログラムでは、ユーザーの名前・計算結果・画面に表示するメッセージなど、さまざまな値を扱います。

その値を入れておく「名前のついた箱」が変数。

おしけん

「変数 = 値を入れておく箱」とシンプルに覚えましょう!

例えば、「名前」という箱に「田中」という値を入れておけば、後からその箱を参照するだけで「田中」という値が取り出せます。

【C#】変数の宣言方法

C#で変数を使うには、まず 「宣言」 が必要です。

宣言とは「こんな名前の箱を作ります」とプログラムに伝えることです。

変数の宣言は以下の形式で書きます。

// 宣言の基本形: データ型 変数名;
int age;

// 宣言と同時に値を代入することもできる(初期化)
int age = 25;
string name = "田中";
bool isStudent = true;
  • 変数名は わかりやすい名前 をつけよう(例:age, name, totalPrice)
  • C#では変数名に キャメルケース(例:studentName)を使うのが一般的
  • 宣言しただけで値を入れていない変数をそのまま使うとエラーになる

変数に値を代入する

変数に値を入れることを 「代入」 といいます。=(イコール)が代入の記号です。

数学の「等しい」とは意味が違うので注意してください。

int score;       // 宣言
score = 80;      // 代入

// 後から上書きもできる
score = 95;      // scoreは95になる

Console.WriteLine(score);  // 95 と表示される

【C#】データ型の種類

C#の変数には必ず データ型(型) を指定する必要があります。

型とは「どんな種類の値を入れる箱か」を決めるものです。

悩んでる人

なんで型を指定しないといけないの?何でも入れられる箱じゃダメなの?

おしけん

型を決めることで、バグを防いだり処理を効率化できます!「整数の箱に文字を入れようとした」みたいなミスをコンパイル時に発見できるんです。

よく使う主なデータ型は以下のとおりです。

型名入れられる値使用例
int整数(-2,147,483,648 〜 2,147,483,647)年齢、個数、点数
double小数を含む数値価格、身長、重量
string文字列名前、住所、メッセージ
booltrue または falseログイン状態、フラグ管理
char1文字性別(’M’ / ‘F’)
longintより大きな整数ファイルサイズ、人口
decimal高精度の小数金額(円未満を扱う場合)
int     age     = 28;
double  height  = 170.5;
string  name    = "山田";
bool    isAdult = true;
char    grade   = 'A';
decimal price   = 1980.50m; // decimalはmをつける

Console.WriteLine($"名前:{name}、年齢:{age}歳");
// 名前:山田、年齢:28歳 と表示される

【C#】varキーワードとは

C#では var というキーワードを使って、型を自動で推測させることができます。

これを 「型推論」 といいます。

// varを使うと型を省略して書ける
var age  = 25;        // int型として扱われる
var name = "田中";    // string型として扱われる
var rate = 0.08;     // double型として扱われる
varを使うときの注意点
  • 宣言と同時に初期化(値の代入)が必要
  • あとから別の型の値を入れることはできない
  • 型が不明瞭になりやすいので、チームのコーディング規約に従って使うこと

⚠️ 注意 var は便利ですが、「何でも入れられる万能型」ではありません! 一度決まった型は変わらないので注意してください。初心者のうちは明示的に型を書く練習をするのがおすすめです。

スコープとは

スコープとは、「変数が使える範囲(有効範囲)」 のことです。

C#では、変数を宣言した場所によって使える範囲が変わります。

悩んでる人

スコープって何?「使える範囲」ってどういうこと?

「その変数はどこからでも使えるのか?それとも一部の場所でしか使えないのか?」という話です。

おしけん

イメージとしては「部屋の中で決めたことは、部屋の外では使えない」みたいな感じです!

class Program
{
    // クラスフィールド(クラス全体で使える)
    static int classLevel = 1;

    static void Main(string[] args)
    {
        // メソッドスコープ(このMainメソッド内でのみ使える)
        string message = "こんにちは";
        Console.WriteLine(message);

        if (true)
        {
            // ブロックスコープ(このifブロック内でのみ使える)
            int blockVar = 100;
            Console.WriteLine(blockVar); // OK
        }

        // Console.WriteLine(blockVar); // エラー!ブロックの外では使えない
    }
}

スコープの種類まとめ

スコープの種類説明
クラスフィールドクラス全体(すべてのメソッド)から使える
メソッドスコープ宣言したメソッドの中でのみ使える
ブロックスコープ{}で囲まれたブロック内でのみ使える
スコープを意識するメリット
  • 変数の影響範囲を最小限にできる → バグが発生しにくい
  • コードが読みやすくなる
  • 同じ変数名を別のスコープで使い回せる

定数(const)との違い

変数は値を後から変更できますが、定数(const)は一度値を設定すると変更できません。

消費税率や固定メッセージなど「変わらない値」には定数を使うのがベストプラクティスです。

// 変数:後から変更できる
int score = 80;
score = 95; // OK

// 定数:変更できない(constキーワードを使う)
const double TAX_RATE = 0.10;
// TAX_RATE = 0.08; // エラー!定数は変更できない

double price = 1000;
double tax   = price * TAX_RATE;
Console.WriteLine($"税込価格:{price + tax}円"); // 1100円
変数(var / 型名)定数(const)
値の変更できるできない
用途変わる可能性のある値変わらない固定値
命名慣習キャメルケース
(例: totalPrice)
大文字スネークケース
(例: TAX_RATE)

よくあるミスと注意点

C#の変数を使い始めたばかりの頃によくやりがちなミスを紹介します。

あらかじめ知っておくだけでエラーで詰まる時間を大幅に減らせますよ!

ミス1:変数を初期化せずに使う

// NG例
int score;
Console.WriteLine(score); // エラー!初期化されていない変数は使えない

// OK例
int score = 0; // 初期値を設定してから使う
Console.WriteLine(score); // 0 と表示される
// NG例
int score;
Console.WriteLine(score); // エラー!初期化されていない変数は使えない

// OK例
int score = 0; // 初期値を設定してから使う
Console.WriteLine(score); // 0 と表示される

ミス2:違う型の値を代入しようとする

// NG例
int age = "28歳"; // エラー!int型にstring型は入れられない

// OK例
int    age     = 28;
string ageText = "28歳"; // 文字列ならstring型を使う

ミス3:スコープ外の変数を参照する

// NG例
if (score > 80)
{
    string result = "合格";
}
Console.WriteLine(result); // エラー!ブロックの外では使えない

// OK例
string result = ""; // ブロックの外で宣言する
if (score > 80)
{
    result = "合格";
}
Console.WriteLine(result); // OK

まとめ

この記事ではC#の変数について、基礎から実践的なポイントまで解説しました!

  • 変数とは「値を入れておく箱」のこと
  • 宣言は「データ型 変数名 = 値;」の形式で書く
  • データ型はint・string・double・boolなどがよく使われる
  • varを使うと型推論で簡潔に書けるが、初心者は型を明示するのがおすすめ
  • スコープによって変数が使える範囲が決まる
  • 定数(const) は変更不可の固定値に使う

変数はプログラミングの基礎中の基礎です。

この記事で紹介したサンプルコードを実際にVisual StudioやVisual Studio Codeで動かしながら、手を動かして覚えていきましょう!

おしけん

変数をマスターすれば、次のステップ(条件分岐・ループ)もスムーズに理解できますよ!

一歩ずつ着実に進めていきましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次