Skip to content

第2章 変数と変数の型

この章では、C#で値を一時的に保存して利用するための 変数 を学習します。

第1章では、Console.WriteLine を使って文字や計算結果を表示しました。

Console.WriteLine("C#研修を開始します。");
Console.WriteLine(100 + 5);

しかし、実際のプログラムでは、値をその場で表示するだけでは不十分です。

たとえば、次のような処理を行うには、値を一時的に覚えておく必要があります。

社員番号を覚えておく
社員名を覚えておく
点数を覚えておく
計算結果を後で使う
入力された文字を保存する
条件判定に使う値を保持する

このように、プログラムの中で値を保存するために使うものが 変数 です。


この章でできるようになること

Section titled “この章でできるようになること”

この章を終えると、次のことができるようになります。

  • 変数とは何かを説明できる
  • int 型の変数を宣言できる
  • string 型の変数を宣言できる
  • 変数に値を代入できる
  • 変数の値を画面に表示できる
  • 変数の値を変更できる
  • 変数を使って簡単な計算ができる
  • 変数名の基本ルールを説明できる
  • var を使った変数宣言を読める
  • doubledecimalboolchar の概要を説明できる
  • Console.ReadLine で入力された文字列を変数に保存できる

項目内容
開発環境Visual Studio 2022
プロジェクト種類コンソール アプリ
対象フレームワーク.NET 8
プロジェクト名Chapter02_Variables

作業を始める前に、次の内容を確認してください。

  • Visual Studio 2022を起動できる
  • コンソールアプリを新規作成できる
  • .NET 8.0 を選択できる
  • Program.cs を開ける
  • class Programstatic void Main() を明示した形式で書ける
  • 第1章の内容をGitに提出済みである

変数とは、プログラムの中で値を一時的に保存しておくための仕組みです。

よく「変数は値を入れておく箱」と説明されます。

変数
値を入れておく箱

たとえば、社員番号を覚えておく変数を用意すると、次のように使えます。

int employeeId;
employeeId = 1001;
Console.WriteLine(employeeId);

このコードでは、employeeId という変数に 1001 を入れています。

実行結果は次のようになります。

1001

変数を使わずに社員情報を表示する場合、次のように直接値を書きます。

using System;
class Program
{
static void Main()
{
Console.WriteLine(1001);
Console.WriteLine("山田太郎");
Console.WriteLine("営業部");
}
}

このコードでも表示はできます。

しかし、この書き方では、値に名前が付いていないため、後から読んだときに意味が分かりにくくなります。


変数を使うと、値に意味のある名前を付けられます。

using System;
class Program
{
static void Main()
{
int employeeId = 1001;
string employeeName = "山田太郎";
string departmentName = "営業部";
Console.WriteLine(employeeId);
Console.WriteLine(employeeName);
Console.WriteLine(departmentName);
}
}

実行結果は次のようになります。

1001
山田太郎
営業部

このコードでは、次のように値の意味が分かりやすくなっています。

変数名入っている値意味
employeeId1001社員番号
employeeName"山田太郎"社員名
departmentName"営業部"部署名

変数を使うには、まず変数を宣言します。

変数の宣言とは、「この名前の変数を使います」とC#に知らせることです。

int age;

このコードは、age という名前の整数用の変数を用意しています。

int age;
↑ ↑
型 変数名

int は、整数を扱うための型です。


変数に値を入れることを 代入 といいます。

age = 23;

= は、数学の「等しい」という意味ではなく、C#では主に「右側の値を左側の変数に入れる」という意味で使います。

age = 23;

これは、次のように考えます。

age に 23 を代入する

変数の値は、Console.WriteLine で表示できます。

using System;
class Program
{
static void Main()
{
int age;
age = 23;
Console.WriteLine(age);
}
}

実行結果は次のようになります。

23

変数の宣言と代入は、同時に書くこともできます。

int age = 23;

このように、変数を宣言すると同時に最初の値を入れることを 初期化 といいます。

変数を宣言する
最初の値を入れる
初期化

研修用サンプル:社員情報を表示する

Section titled “研修用サンプル:社員情報を表示する”

次のコードを入力して実行してください。

using System;
class Program
{
static void Main()
{
int employeeId = 1001;
string employeeName = "山田太郎";
string departmentName = "営業部";
int trainingDay = 2;
Console.WriteLine("社員情報");
Console.WriteLine(employeeId);
Console.WriteLine(employeeName);
Console.WriteLine(departmentName);
Console.WriteLine(trainingDay);
}
}

実行結果は次のようになります。

社員情報
1001
山田太郎
営業部
2

変数を使うと、次のメリットがあります。

  • 値の意味が分かりやすくなる
  • 同じ値を何度も使える
  • 後から値を変更しやすい
  • 計算結果を保存できる
  • 入力された値を保存できる

変数には、後から別の値を代入できます。

using System;
class Program
{
static void Main()
{
string employeeName = "山田太郎";
Console.WriteLine(employeeName);
employeeName = "佐藤花子";
Console.WriteLine(employeeName);
}
}

実行結果は次のようになります。

山田太郎
佐藤花子

最初は employeeName"山田太郎" が入っています。

その後、次の行で "佐藤花子" に変更しています。

employeeName = "佐藤花子";

このように、変数の値は後から変更できます。

補足:変数は「変わる値」

変数という名前の通り、変数には後から別の値を入れられます。 ただし、どんな値でも入れられるわけではありません。 int 型の変数には整数、string 型の変数には文字列のように、型に合った値を入れる必要があります。


変数に数値を入れると、計算にも使えます。

using System;
class Program
{
static void Main()
{
int unitPrice = 120;
int quantity = 4;
int totalPrice = unitPrice * quantity;
Console.WriteLine(totalPrice);
}
}

実行結果は次のようになります。

480

このコードでは、次の計算を行っています。

120 × 4 = 480

変数を使うと、何の値を計算しているか分かりやすくなります。

変数名意味
unitPrice単価
quantity数量
totalPrice合計金額

次のように、文字列と変数を組み合わせて表示できます。

using System;
class Program
{
static void Main()
{
int unitPrice = 120;
int quantity = 4;
int totalPrice = unitPrice * quantity;
Console.WriteLine($"単価:{unitPrice}");
Console.WriteLine($"数量:{quantity}");
Console.WriteLine($"合計:{totalPrice}");
}
}

実行結果は次のようになります。

単価:120円
数量:4個
合計:480円

$"..." の中で {変数名} と書くと、変数の値を文字列の中に埋め込めます。

Console.WriteLine($"合計:{totalPrice}");

補足:文字列補間

$"..." の中に {変数名} を書いて、文字列の中に変数の値を埋め込む書き方を、文字列補間と呼びます。

今後の研修でもよく使います。


変数名は意味が分かる名前にする

Section titled “変数名は意味が分かる名前にする”

変数名は、プログラムを読む人にとって分かりやすい名前にします。

良い例:

int employeeId = 1001;
string employeeName = "山田太郎";
int totalPrice = 480;

避けたい例:

int a = 1001;
string b = "山田太郎";
int x = 480;

ab のような名前では、何を表している変数なのか分かりません。

研修中は、少し長くなっても意味が分かる変数名を付けるようにしましょう。


変数名には、いくつかのルールがあります。

ルール
数字で始めることはできない1name は不可
空白を含めることはできないemployee name は不可
intclass などの予約語は使えないint int = 10; は不可
大文字と小文字は区別されるnameName は別
日本語も使えるが、研修では半角英数字を推奨社員名 は避ける

C#では、ローカル変数には キャメルケース を使うことが多いです。

キャメルケースとは、最初の単語を小文字で始め、2つ目以降の単語の先頭を大文字にする書き方です。

例:

employeeId
employeeName
departmentName
totalPrice
trainingDay

本研修でも、変数名は基本的にキャメルケースで書きます。


エラーになる例:数字から始まる変数名

Section titled “エラーになる例:数字から始まる変数名”

次のコードはエラーになります。

int 1stScore = 80;

変数名を数字で始めることはできません。

次のように修正します。

int firstScore = 80;

エラーになる例:空白を含む変数名

Section titled “エラーになる例:空白を含む変数名”

次のコードはエラーになります。

string employee name = "山田太郎";

変数名に空白を含めることはできません。

次のように修正します。

string employeeName = "山田太郎";

型とは、変数に入れられる値の種類を表すものです。

たとえば、次のような型があります。

入れられる値の例用途
int100, 23, -5整数
string"山田太郎"文字列
double3.14, 1.414小数
decimal1280.5m金額など誤差を避けたい小数
booltrue, false真偽値
char'A', 'あ'1文字

C#では、変数ごとに型があります。


int は整数を扱う型です。

int score = 85;
int quantity = 4;
int employeeId = 1001;

小数を入れることはできません。

エラーになる例:

int rate = 1.5;

int 型は整数用なので、1.5 のような小数は入れられません。


string は文字列を扱う型です。

string name = "山田太郎";
string departmentName = "営業部";
string message = "C#を学習中です";

文字列は " で囲みます。

エラーになる例:

string name = 山田太郎;

文字列を " で囲んでいないため、エラーになります。

正しくは次のように書きます。

string name = "山田太郎";

double は、小数を扱う型です。

double height = 170.5;
double rate = 1.08;

たとえば、身長や割合などを扱うときに使えます。

using System;
class Program
{
static void Main()
{
double height = 170.5;
Console.WriteLine($"身長:{height}cm");
}
}

decimal は、小数を扱う型の1つです。

特に金額計算など、誤差を避けたい場面で使われることがあります。

decimal 型の数値には、末尾に m を付けます。

decimal price = 1280m;
decimal taxRate = 1.10m;
decimal priceIncludingTax = price * taxRate;
Console.WriteLine(priceIncludingTax);

補足:doubleとdecimal

doubledecimal も小数を扱えます。

一般的な小数計算では double が使われることがあります。 金額計算では、誤差を避けるために decimal が使われることがあります。

この章では、まず「小数を扱う型には種類がある」ことを知っておけば十分です。


bool は、真偽値を扱う型です。

入れられる値は次の2つだけです。

true
false

例:

bool isActive = true;
bool isDeleted = false;
Console.WriteLine(isActive);
Console.WriteLine(isDeleted);

実行結果:

True
False

bool は、後の章で学ぶ条件分岐と深く関係します。


char は、1文字を扱う型です。

char の値は ' で囲みます。

char rank = 'A';
char symbol = '*';
char kana = 'あ';

string"char' を使います。

string"A"
char'A'

次のコードはエラーになります。

char rank = "A";

char は1文字を ' で囲む必要があるためです。

正しくは次のように書きます。

char rank = 'A';

C#では、var を使って変数を宣言することもできます。

var age = 23;
var name = "山田太郎";

この場合、C#が右側の値を見て、型を判断します。

23 → int
"山田太郎" → string

つまり、次の2つは似た意味になります。

int age = 23;
var age = 23;

ただし、初学者の段階では、型を意識するために、最初は intstring を明示して書くことをおすすめします。

補足:本研修でのvarの扱い

実際のC#コードでは、var はよく使われます。

ただし、学習初期では「この変数は何型なのか」を意識することが大切です。 そのため、本研修では最初は型名を明示し、慣れてきたら var も読めるようにしていきます。


Console.ReadLine を使うと、キーボードから入力された文字を受け取れます。

using System;
class Program
{
static void Main()
{
Console.WriteLine("名前を入力してください。");
string name = Console.ReadLine();
Console.WriteLine($"{name}さん、こんにちは。");
}
}

実行例:

名前を入力してください。
山田
山田さん、こんにちは。

Console.ReadLine で受け取った値は、文字列として扱われます。


次のコードを入力して実行してください。

using System;
class Program
{
static void Main()
{
Console.WriteLine("社員名を入力してください。");
string employeeName = Console.ReadLine();
Console.WriteLine("入力された社員名:");
Console.WriteLine(employeeName);
}
}

実行例:

社員名を入力してください。
佐藤花子
入力された社員名:
佐藤花子

この章でよくあるつまずきを確認します。

つまずき原因対応
変数名に赤い波線が出る変数名のルールに違反している数字始まり、空白、予約語を使っていないか確認する
string name = 山田; がエラーになる文字列を " で囲んでいない"山田" のように書く
int age = "23"; がエラーになるint 型に文字列を入れようとしているint age = 23; と書く
char rank = "A"; がエラーになるchar に文字列を代入しているchar rank = 'A'; と書く
decimal price = 1280.5; がエラーになるdecimal の数値に m がない1280.5m と書く
Console.ReadLine() の結果を数値として計算できない入力値は文字列として受け取られる数値変換は後の章で学習する
表示結果が古い保存せずに実行しているCtrl + S で保存してから実行する

次の項目について、自分で説明できるか確認してください。

  • 変数とは何かを説明できる
  • 変数の宣言とは何かを説明できる
  • 代入とは何かを説明できる
  • 初期化とは何かを説明できる
  • int 型の変数を作成できる
  • string 型の変数を作成できる
  • 変数の値を Console.WriteLine で表示できる
  • 変数を使って計算できる
  • 変数名の基本ルールを説明できる
  • キャメルケースで変数名を付けられる
  • doubledecimalboolchar の概要を説明できる
  • Console.ReadLine で入力を受け取れる
  • var の役割をおおまかに説明できる

研修の進め方によっては、隣の人またはチーム内で説明確認を行います。

次の内容を、自分の言葉で説明してください。

  1. 変数とは何ですか。
  2. intstring の違いは何ですか。
  3. 代入とは何ですか。
  4. 初期化とは何ですか。
  5. 変数名を付けるときに気を付けることは何ですか。
  6. Console.ReadLine は何をする命令ですか。

説明するときは、完全な答えでなくても構いません。
自分の言葉で説明しようとすることが大切です。


この章の演習課題に取り組みます。

制限時間は 40分 です。

時間内にすべて完成しなくても構いません。
できたところまでを保存し、Gitに提出してください。

提出について

制限時間になったら、完成・未完成に関わらず作業を止めます。 できたところまでをGitにcommitし、pushしてください。 未完成の場合は、どこまでできたかを報告できるようにしておきましょう。


まずは、全員が必須課題に取り組んでください。


課題2-1 社員情報を変数で表示する

Section titled “課題2-1 社員情報を変数で表示する”

次の情報を変数に代入し、画面に表示してください。

項目
社員番号1001
氏名"山田太郎"
部署"営業部"
研修日数2

実行結果例:

社員番号:1001
氏名:山田太郎
部署:営業部
研修日数:2日目

条件:

  • int 型の変数を1つ以上使う
  • string 型の変数を2つ以上使う
  • 変数名は意味が分かる名前にする

次の条件で、商品の合計金額を計算して表示してください。

項目
商品名"ノート"
単価180
数量5

実行結果例:

商品名:ノート
単価:180円
数量:5個
合計:900円

条件:

  • 単価、数量、合計金額を変数で管理する
  • 合計金額は計算で求める
  • 計算結果を変数に保存してから表示する

課題2-3 入力された名前を表示する

Section titled “課題2-3 入力された名前を表示する”

Console.ReadLine を使って名前を入力し、あいさつ文を表示してください。

実行例:

名前を入力してください。
佐藤
佐藤さん、こんにちは。

条件:

  • 入力された名前を string 型の変数に保存する
  • 入力された値を使ってメッセージを表示する

必須課題が終わった人は、発展課題に取り組んでください。


次の条件で、税込金額を計算してください。

項目
商品名"キーボード"
税抜価格2980m
消費税率1.10m

実行結果例:

商品名:キーボード
税抜価格:2980円
税込価格:3278.0円

条件:

  • decimal 型を使う
  • 数値の末尾に m を付ける
  • 税込価格は計算で求める

課題2-5 研修参加者情報を表示する

Section titled “課題2-5 研修参加者情報を表示する”

次の情報を変数で管理し、表示してください。

項目型の例値の例
受講者名string"鈴木一郎"
年齢int22
選択言語string"C#"
参加中かどうかbooltrue
評価ランクchar'A'

実行結果例:

受講者名:鈴木一郎
年齢:22
選択言語:C#
参加中:True
評価ランク:A

条件:

  • stringintboolchar をそれぞれ1回以上使う
  • 変数名は意味が分かる名前にする

次の流れで動くプログラムを作成してください。

名前を入力してください。
山田
部署を入力してください。
開発部
山田さんは開発部に所属しています。

条件:

  • 名前と部署を Console.ReadLine で入力する
  • 入力された値を変数に保存する
  • 変数を使って最後のメッセージを表示する

課題が終わったら、できたところまでをGitに提出します。

まず、現在の状態を確認します。

Terminal window
git status

変更されたファイルを追加します。

Terminal window
git add .

コミットします。

Terminal window
git commit -m "Chapter02 変数と変数の型"

ファイルサーバー上のリポジトリへpushします。

Terminal window
git push

Gitの操作でエラーが出た場合は、自己判断で同じ操作を繰り返さず、講師に確認してください。


提出前に、次の項目を確認してください。

  • プログラムをVisual Studioから実行できる
  • int 型の変数を使っている
  • string 型の変数を使っている
  • 変数名が分かりやすい
  • 変数に値を代入している
  • 変数の値を表示している
  • 計算結果を変数に保存している
  • Console.ReadLine を使った課題を実行できる
  • セミコロンの付け忘れがない
  • 全角記号が混ざっていない
  • インデントが整っている
  • Gitにcommitしている
  • Gitにpushしている

この章では、変数と変数の型について学習しました。

この章で学んだ主な内容は次の通りです。

  • 変数は、値を一時的に保存するための仕組みである
  • 変数を使うには、型と変数名を指定して宣言する
  • 変数に値を入れることを代入という
  • 変数を宣言すると同時に値を入れることを初期化という
  • int は整数を扱う型である
  • string は文字列を扱う型である
  • doubledecimal は小数を扱う型である
  • booltrue または false を扱う型である
  • char は1文字を扱う型である
  • 変数名は意味が分かる名前にする
  • C#では変数名の大文字と小文字を区別する
  • var を使うと、右側の値から型を推測できる
  • Console.ReadLine を使うと、キーボードから入力された文字列を受け取れる

次章では、演算と演算子 を学習します。

第1章では直接計算を表示し、第2章では変数に値を保存しました。
次章では、変数を使って計算したり、文字列を組み立てたり、型変換を行ったりします。