第2章 変数と変数の型
この章の目的
Section titled “この章の目的”この章では、C#で値を一時的に保存して利用するための 変数 を学習します。
第1章では、Console.WriteLine を使って文字や計算結果を表示しました。
Console.WriteLine("C#研修を開始します。");Console.WriteLine(100 + 5);しかし、実際のプログラムでは、値をその場で表示するだけでは不十分です。
たとえば、次のような処理を行うには、値を一時的に覚えておく必要があります。
社員番号を覚えておく社員名を覚えておく点数を覚えておく計算結果を後で使う入力された文字を保存する条件判定に使う値を保持するこのように、プログラムの中で値を保存するために使うものが 変数 です。
この章でできるようになること
Section titled “この章でできるようになること”この章を終えると、次のことができるようになります。
- 変数とは何かを説明できる
int型の変数を宣言できるstring型の変数を宣言できる- 変数に値を代入できる
- 変数の値を画面に表示できる
- 変数の値を変更できる
- 変数を使って簡単な計算ができる
- 変数名の基本ルールを説明できる
varを使った変数宣言を読めるdouble、decimal、bool、charの概要を説明できるConsole.ReadLineで入力された文字列を変数に保存できる
本章で使用する環境
Section titled “本章で使用する環境”| 項目 | 内容 |
|---|---|
| 開発環境 | Visual Studio 2022 |
| プロジェクト種類 | コンソール アプリ |
| 対象フレームワーク | .NET 8 |
| プロジェクト名 | Chapter02_Variables |
作業前チェック
Section titled “作業前チェック”作業を始める前に、次の内容を確認してください。
- Visual Studio 2022を起動できる
- コンソールアプリを新規作成できる
-
.NET 8.0を選択できる -
Program.csを開ける -
class Programとstatic void Main()を明示した形式で書ける - 第1章の内容をGitに提出済みである
2-1 変数とは?
Section titled “2-1 変数とは?”変数は「値を入れておく箱」
Section titled “変数は「値を入れておく箱」”変数とは、プログラムの中で値を一時的に保存しておくための仕組みです。
よく「変数は値を入れておく箱」と説明されます。
変数 ↓値を入れておく箱たとえば、社員番号を覚えておく変数を用意すると、次のように使えます。
int employeeId;employeeId = 1001;Console.WriteLine(employeeId);このコードでは、employeeId という変数に 1001 を入れています。
実行結果は次のようになります。
1001変数を使わない場合
Section titled “変数を使わない場合”変数を使わずに社員情報を表示する場合、次のように直接値を書きます。
using System;
class Program{ static void Main() { Console.WriteLine(1001); Console.WriteLine("山田太郎"); Console.WriteLine("営業部"); }}このコードでも表示はできます。
しかし、この書き方では、値に名前が付いていないため、後から読んだときに意味が分かりにくくなります。
変数を使う場合
Section titled “変数を使う場合”変数を使うと、値に意味のある名前を付けられます。
using System;
class Program{ static void Main() { int employeeId = 1001; string employeeName = "山田太郎"; string departmentName = "営業部";
Console.WriteLine(employeeId); Console.WriteLine(employeeName); Console.WriteLine(departmentName); }}実行結果は次のようになります。
1001山田太郎営業部このコードでは、次のように値の意味が分かりやすくなっています。
| 変数名 | 入っている値 | 意味 |
|---|---|---|
employeeId | 1001 | 社員番号 |
employeeName | "山田太郎" | 社員名 |
departmentName | "営業部" | 部署名 |
2-2 変数の基本的な使い方
Section titled “2-2 変数の基本的な使い方”変数を宣言する
Section titled “変数を宣言する”変数を使うには、まず変数を宣言します。
変数の宣言とは、「この名前の変数を使います」とC#に知らせることです。
int age;このコードは、age という名前の整数用の変数を用意しています。
int age;↑ ↑型 変数名int は、整数を扱うための型です。
変数に値を代入する
Section titled “変数に値を代入する”変数に値を入れることを 代入 といいます。
age = 23;= は、数学の「等しい」という意味ではなく、C#では主に「右側の値を左側の変数に入れる」という意味で使います。
age = 23;これは、次のように考えます。
age に 23 を代入する変数の値を表示する
Section titled “変数の値を表示する”変数の値は、Console.WriteLine で表示できます。
using System;
class Program{ static void Main() { int age; age = 23;
Console.WriteLine(age); }}実行結果は次のようになります。
23宣言と代入を同時に行う
Section titled “宣言と代入を同時に行う”変数の宣言と代入は、同時に書くこともできます。
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変数を使うメリット
Section titled “変数を使うメリット”変数を使うと、次のメリットがあります。
- 値の意味が分かりやすくなる
- 同じ値を何度も使える
- 後から値を変更しやすい
- 計算結果を保存できる
- 入力された値を保存できる
変数の値を変更する
Section titled “変数の値を変更する”変数には、後から別の値を代入できます。
using System;
class Program{ static void Main() { string employeeName = "山田太郎";
Console.WriteLine(employeeName);
employeeName = "佐藤花子";
Console.WriteLine(employeeName); }}実行結果は次のようになります。
山田太郎佐藤花子最初は employeeName に "山田太郎" が入っています。
その後、次の行で "佐藤花子" に変更しています。
employeeName = "佐藤花子";このように、変数の値は後から変更できます。
補足:変数は「変わる値」
変数という名前の通り、変数には後から別の値を入れられます。 ただし、どんな値でも入れられるわけではありません。
int型の変数には整数、string型の変数には文字列のように、型に合った値を入れる必要があります。
変数を使って計算する
Section titled “変数を使って計算する”変数に数値を入れると、計算にも使えます。
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 | 合計金額 |
表示内容を分かりやすくする
Section titled “表示内容を分かりやすくする”次のように、文字列と変数を組み合わせて表示できます。
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}円");補足:文字列補間
$"..."の中に{変数名}を書いて、文字列の中に変数の値を埋め込む書き方を、文字列補間と呼びます。今後の研修でもよく使います。
2-3 変数名の付け方
Section titled “2-3 変数名の付け方”変数名は意味が分かる名前にする
Section titled “変数名は意味が分かる名前にする”変数名は、プログラムを読む人にとって分かりやすい名前にします。
良い例:
int employeeId = 1001;string employeeName = "山田太郎";int totalPrice = 480;避けたい例:
int a = 1001;string b = "山田太郎";int x = 480;a や b のような名前では、何を表している変数なのか分かりません。
研修中は、少し長くなっても意味が分かる変数名を付けるようにしましょう。
C#の変数名の基本ルール
Section titled “C#の変数名の基本ルール”変数名には、いくつかのルールがあります。
| ルール | 例 |
|---|---|
| 数字で始めることはできない | 1name は不可 |
| 空白を含めることはできない | employee name は不可 |
int や class などの予約語は使えない | int int = 10; は不可 |
| 大文字と小文字は区別される | name と Name は別 |
| 日本語も使えるが、研修では半角英数字を推奨 | 社員名 は避ける |
キャメルケース
Section titled “キャメルケース”C#では、ローカル変数には キャメルケース を使うことが多いです。
キャメルケースとは、最初の単語を小文字で始め、2つ目以降の単語の先頭を大文字にする書き方です。
例:
employeeIdemployeeNamedepartmentNametotalPricetrainingDay本研修でも、変数名は基本的にキャメルケースで書きます。
エラーになる例:数字から始まる変数名
Section titled “エラーになる例:数字から始まる変数名”次のコードはエラーになります。
int 1stScore = 80;変数名を数字で始めることはできません。
次のように修正します。
int firstScore = 80;エラーになる例:空白を含む変数名
Section titled “エラーになる例:空白を含む変数名”次のコードはエラーになります。
string employee name = "山田太郎";変数名に空白を含めることはできません。
次のように修正します。
string employeeName = "山田太郎";2-4 変数の型
Section titled “2-4 変数の型”型とは、変数に入れられる値の種類を表すものです。
たとえば、次のような型があります。
| 型 | 入れられる値の例 | 用途 |
|---|---|---|
int | 100, 23, -5 | 整数 |
string | "山田太郎" | 文字列 |
double | 3.14, 1.414 | 小数 |
decimal | 1280.5m | 金額など誤差を避けたい小数 |
bool | true, false | 真偽値 |
char | 'A', 'あ' | 1文字 |
C#では、変数ごとに型があります。
int は整数を扱う型です。
int score = 85;int quantity = 4;int employeeId = 1001;小数を入れることはできません。
エラーになる例:
int rate = 1.5;int 型は整数用なので、1.5 のような小数は入れられません。
string型
Section titled “string型”string は文字列を扱う型です。
string name = "山田太郎";string departmentName = "営業部";string message = "C#を学習中です";文字列は " で囲みます。
エラーになる例:
string name = 山田太郎;文字列を " で囲んでいないため、エラーになります。
正しくは次のように書きます。
string name = "山田太郎";double型
Section titled “double型”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型
Section titled “decimal型”decimal は、小数を扱う型の1つです。
特に金額計算など、誤差を避けたい場面で使われることがあります。
decimal 型の数値には、末尾に m を付けます。
decimal price = 1280m;decimal taxRate = 1.10m;decimal priceIncludingTax = price * taxRate;
Console.WriteLine(priceIncludingTax);補足:doubleとdecimal
doubleもdecimalも小数を扱えます。一般的な小数計算では
doubleが使われることがあります。 金額計算では、誤差を避けるためにdecimalが使われることがあります。この章では、まず「小数を扱う型には種類がある」ことを知っておけば十分です。
bool は、真偽値を扱う型です。
入れられる値は次の2つだけです。
truefalse例:
bool isActive = true;bool isDeleted = false;
Console.WriteLine(isActive);Console.WriteLine(isDeleted);実行結果:
TrueFalsebool は、後の章で学ぶ条件分岐と深く関係します。
char は、1文字を扱う型です。
char の値は ' で囲みます。
char rank = 'A';char symbol = '*';char kana = 'あ';string は "、char は ' を使います。
| 型 | 例 |
|---|---|
string | "A" |
char | 'A' |
次のコードはエラーになります。
char rank = "A";char は1文字を ' で囲む必要があるためです。
正しくは次のように書きます。
char rank = 'A';varを使った変数宣言
Section titled “varを使った変数宣言”C#では、var を使って変数を宣言することもできます。
var age = 23;var name = "山田太郎";この場合、C#が右側の値を見て、型を判断します。
23 → int"山田太郎" → stringつまり、次の2つは似た意味になります。
int age = 23;var age = 23;ただし、初学者の段階では、型を意識するために、最初は int や string を明示して書くことをおすすめします。
補足:本研修でのvarの扱い
実際のC#コードでは、
varはよく使われます。ただし、学習初期では「この変数は何型なのか」を意識することが大切です。 そのため、本研修では最初は型名を明示し、慣れてきたら
varも読めるようにしていきます。
キーボードから入力する
Section titled “キーボードから入力する”Console.ReadLine
Section titled “Console.ReadLine”Console.ReadLine を使うと、キーボードから入力された文字を受け取れます。
using System;
class Program{ static void Main() { Console.WriteLine("名前を入力してください。");
string name = Console.ReadLine();
Console.WriteLine($"{name}さん、こんにちは。"); }}実行例:
名前を入力してください。山田山田さん、こんにちは。Console.ReadLine で受け取った値は、文字列として扱われます。
入力された社員名を表示する
Section titled “入力された社員名を表示する”次のコードを入力して実行してください。
using System;
class Program{ static void Main() { Console.WriteLine("社員名を入力してください。");
string employeeName = Console.ReadLine();
Console.WriteLine("入力された社員名:"); Console.WriteLine(employeeName); }}実行例:
社員名を入力してください。佐藤花子入力された社員名:佐藤花子よくあるつまずき
Section titled “よくあるつまずき”この章でよくあるつまずきを確認します。
| つまずき | 原因 | 対応 |
|---|---|---|
| 変数名に赤い波線が出る | 変数名のルールに違反している | 数字始まり、空白、予約語を使っていないか確認する |
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 で保存してから実行する |
学んだことチェック
Section titled “学んだことチェック”次の項目について、自分で説明できるか確認してください。
- 変数とは何かを説明できる
- 変数の宣言とは何かを説明できる
- 代入とは何かを説明できる
- 初期化とは何かを説明できる
-
int型の変数を作成できる -
string型の変数を作成できる - 変数の値を
Console.WriteLineで表示できる - 変数を使って計算できる
- 変数名の基本ルールを説明できる
- キャメルケースで変数名を付けられる
-
double、decimal、bool、charの概要を説明できる -
Console.ReadLineで入力を受け取れる -
varの役割をおおまかに説明できる
研修の進め方によっては、隣の人またはチーム内で説明確認を行います。
次の内容を、自分の言葉で説明してください。
- 変数とは何ですか。
intとstringの違いは何ですか。- 代入とは何ですか。
- 初期化とは何ですか。
- 変数名を付けるときに気を付けることは何ですか。
Console.ReadLineは何をする命令ですか。
説明するときは、完全な答えでなくても構いません。
自分の言葉で説明しようとすることが大切です。
この章の演習課題に取り組みます。
制限時間は 40分 です。
時間内にすべて完成しなくても構いません。
できたところまでを保存し、Gitに提出してください。
提出について
制限時間になったら、完成・未完成に関わらず作業を止めます。 できたところまでをGitにcommitし、pushしてください。 未完成の場合は、どこまでできたかを報告できるようにしておきましょう。
まずは、全員が必須課題に取り組んでください。
課題2-1 社員情報を変数で表示する
Section titled “課題2-1 社員情報を変数で表示する”次の情報を変数に代入し、画面に表示してください。
| 項目 | 値 |
|---|---|
| 社員番号 | 1001 |
| 氏名 | "山田太郎" |
| 部署 | "営業部" |
| 研修日数 | 2 |
実行結果例:
社員番号:1001氏名:山田太郎部署:営業部研修日数:2日目条件:
int型の変数を1つ以上使うstring型の変数を2つ以上使う- 変数名は意味が分かる名前にする
課題2-2 商品金額を計算する
Section titled “課題2-2 商品金額を計算する”次の条件で、商品の合計金額を計算して表示してください。
| 項目 | 値 |
|---|---|
| 商品名 | "ノート" |
| 単価 | 180 |
| 数量 | 5 |
実行結果例:
商品名:ノート単価:180円数量:5個合計:900円条件:
- 単価、数量、合計金額を変数で管理する
- 合計金額は計算で求める
- 計算結果を変数に保存してから表示する
課題2-3 入力された名前を表示する
Section titled “課題2-3 入力された名前を表示する”Console.ReadLine を使って名前を入力し、あいさつ文を表示してください。
実行例:
名前を入力してください。佐藤佐藤さん、こんにちは。条件:
- 入力された名前を
string型の変数に保存する - 入力された値を使ってメッセージを表示する
必須課題が終わった人は、発展課題に取り組んでください。
課題2-4 税込金額を計算する
Section titled “課題2-4 税込金額を計算する”次の条件で、税込金額を計算してください。
| 項目 | 値 |
|---|---|
| 商品名 | "キーボード" |
| 税抜価格 | 2980m |
| 消費税率 | 1.10m |
実行結果例:
商品名:キーボード税抜価格:2980円税込価格:3278.0円条件:
decimal型を使う- 数値の末尾に
mを付ける - 税込価格は計算で求める
課題2-5 研修参加者情報を表示する
Section titled “課題2-5 研修参加者情報を表示する”次の情報を変数で管理し、表示してください。
| 項目 | 型の例 | 値の例 |
|---|---|---|
| 受講者名 | string | "鈴木一郎" |
| 年齢 | int | 22 |
| 選択言語 | string | "C#" |
| 参加中かどうか | bool | true |
| 評価ランク | char | 'A' |
実行結果例:
受講者名:鈴木一郎年齢:22選択言語:C#参加中:True評価ランク:A条件:
string、int、bool、charをそれぞれ1回以上使う- 変数名は意味が分かる名前にする
課題2-6 自己紹介入力アプリ
Section titled “課題2-6 自己紹介入力アプリ”次の流れで動くプログラムを作成してください。
名前を入力してください。山田部署を入力してください。開発部山田さんは開発部に所属しています。条件:
- 名前と部署を
Console.ReadLineで入力する - 入力された値を変数に保存する
- 変数を使って最後のメッセージを表示する
Gitへの提出
Section titled “Gitへの提出”課題が終わったら、できたところまでをGitに提出します。
まず、現在の状態を確認します。
git status変更されたファイルを追加します。
git add .コミットします。
git commit -m "Chapter02 変数と変数の型"ファイルサーバー上のリポジトリへpushします。
git pushGitの操作でエラーが出た場合は、自己判断で同じ操作を繰り返さず、講師に確認してください。
提出前チェックリスト
Section titled “提出前チェックリスト”提出前に、次の項目を確認してください。
- プログラムをVisual Studioから実行できる
-
int型の変数を使っている -
string型の変数を使っている - 変数名が分かりやすい
- 変数に値を代入している
- 変数の値を表示している
- 計算結果を変数に保存している
-
Console.ReadLineを使った課題を実行できる - セミコロンの付け忘れがない
- 全角記号が混ざっていない
- インデントが整っている
- Gitにcommitしている
- Gitにpushしている
この章のまとめ
Section titled “この章のまとめ”この章では、変数と変数の型について学習しました。
この章で学んだ主な内容は次の通りです。
- 変数は、値を一時的に保存するための仕組みである
- 変数を使うには、型と変数名を指定して宣言する
- 変数に値を入れることを代入という
- 変数を宣言すると同時に値を入れることを初期化という
intは整数を扱う型であるstringは文字列を扱う型であるdoubleやdecimalは小数を扱う型であるboolはtrueまたはfalseを扱う型であるcharは1文字を扱う型である- 変数名は意味が分かる名前にする
- C#では変数名の大文字と小文字を区別する
varを使うと、右側の値から型を推測できるConsole.ReadLineを使うと、キーボードから入力された文字列を受け取れる
次章では、演算と演算子 を学習します。
第1章では直接計算を表示し、第2章では変数に値を保存しました。
次章では、変数を使って計算したり、文字列を組み立てたり、型変換を行ったりします。