第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 |
| プロジェクト名 | Ch02_Variables |
csproj の Nullable は disable に変更してください
第 1 章で説明した通り、プロジェクト作成後、
Ch02_Variables.csprojを開き、<Nullable>disable</Nullable>に変更してください。詳しい手順は、第 1 章「1-1 プロジェクトを作成する」を参照してください。
補足:ソリューション名とプロジェクト名は別の名前にします
本研修では、ソリューション名は
Chapter02、プロジェクト名はCh02_Variablesのように分けます。第 1 章と同様に、新規作成画面で「ソリューション名」欄を
Chapter02に変更してください。
2-1 変数とは?
Section titled “2-1 変数とは?”変数は「値を入れておく箱」
Section titled “変数は「値を入れておく箱」”変数とは、プログラムの中で値を一時的に保存しておくための仕組みです。
よく「変数は値を入れておく箱」と説明されます。
変数 ↓値を入れておく箱
たとえば、社員番号を覚えておく変数を用意すると、次のように使えます。
int employeeId;employeeId = 1001;Console.WriteLine(employeeId);このコードでは、employeeId という変数に 1001 を入れています。
実行結果は次のようになります。
1001変数を使わない場合
Section titled “変数を使わない場合”変数を使わずに社員情報を表示する場合、次のように直接値を書きます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { Console.WriteLine(1001); Console.WriteLine("山田二郎"); Console.WriteLine("総務"); } }}このコードでも表示はできます。
しかし、この書き方では、値に名前が付いていないため、後から読んだときに意味が分かりにくくなります。
1001 が社員番号なのか、商品番号なのか、年齢なのか、コードを見ただけでは判断できません。
変数を使う場合
Section titled “変数を使う場合”変数を使うと、値に意味のある名前を付けられます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { int employeeId = 1001; string employeeName = "山田二郎"; string departmentName = "総務";
Console.WriteLine(employeeId); Console.WriteLine(employeeName); Console.WriteLine(departmentName); } }}実行結果は次のようになります。
1001山田二郎総務このコードでは、次のように値の意味が分かりやすくなっています。
| 変数名 | 入っている値 | 意味 |
|---|---|---|
employeeId | 1001 | 社員番号 |
employeeName | "山田二郎" | 社員名 |
departmentName | "総務" | 部署名 |
SQL研修で扱った社員情報を覚えていますか?
ここで使っている社員番号や社員名は、SQL 研修で扱った
employeesテーブル、departmentsテーブルのデータと同じものです。後の章では、これらのテーブルから取得したデータを変数に保存して、C# のプログラムから操作します。
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 で表示できます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { int age; age = 23;
Console.WriteLine(age); } }}実行結果は次のようになります。
23宣言と代入を同時に行う
Section titled “宣言と代入を同時に行う”変数の宣言と代入は、同時に書くこともできます。
int age = 23;このように、変数を宣言すると同時に最初の値を入れることを 初期化 といいます。
変数を宣言する ↓最初の値を入れる ↓初期化実用上は、宣言と初期化を 1 行で書くことが多いです。
研修用サンプル:社員情報を表示する
Section titled “研修用サンプル:社員情報を表示する”次のコードを入力して実行してください。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { 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 “変数を使うメリット”変数を使うと、次のメリットがあります。
- 値の意味が分かりやすくなる
- 同じ値を何度も使える
- 後から値を変更しやすい
- 計算結果を保存できる
- 入力された値を保存できる
2-3 変数の値を変更する
Section titled “2-3 変数の値を変更する”変数には、後から別の値を代入できます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { string employeeName = "山田二郎";
Console.WriteLine(employeeName);
employeeName = "佐藤昭夫";
Console.WriteLine(employeeName); } }}実行結果は次のようになります。
山田二郎佐藤昭夫最初は employeeName に "山田二郎" が入っています。
その後、次の行で "佐藤昭夫" に変更しています。
employeeName = "佐藤昭夫";このように、変数の値は後から変更できます。
補足:変数は「変わる値」
変数という名前の通り、変数には後から別の値を入れられます。
ただし、どんな値でも入れられるわけではありません。
int型の変数には整数、string型の変数には文字列のように、型に合った値を入れる必要があります。
数値の変数を変更する
Section titled “数値の変数を変更する”文字列だけでなく、数値の変数でも値を後から変更できます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { int salary = 500000; Console.WriteLine(salary);
salary = 800000; Console.WriteLine(salary); } }}実行結果は次のようになります。
5000008000002-4 変数を使って計算する
Section titled “2-4 変数を使って計算する”変数に数値を入れると、計算にも使えます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { int unitPrice = 120; int quantity = 4; int totalPrice = unitPrice * quantity;
Console.WriteLine(totalPrice); } }}実行結果は次のようになります。
480このコードでは、次の計算を行っています。
120 × 4 = 480変数を使うと、何の値を計算しているか分かりやすくなります。
| 変数名 | 意味 |
|---|---|
unitPrice | 単価 |
quantity | 数量 |
totalPrice | 合計金額 |
表示内容を分かりやすくする(文字列補間)
Section titled “表示内容を分かりやすくする(文字列補間)”次のように、文字列と変数を組み合わせて表示できます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { int unitPrice = 120; int quantity = 4; int totalPrice = unitPrice * quantity;
Console.WriteLine($"単価:{unitPrice}円"); Console.WriteLine($"数量:{quantity}個"); Console.WriteLine($"合計:{totalPrice}円"); } }}実行結果は次のようになります。
単価:120円数量:4個合計:480円このような書き方を 文字列補間 と呼びます。
文字列補間の書き方
Section titled “文字列補間の書き方”文字列補間の書き方を、もう少し詳しく見ていきます。
Console.WriteLine($"単価:{unitPrice}円");ポイントは次の 2 つです。
1. 文字列の前に $ を付ける2. 変数を {} で囲む
$"単価:{unitPrice}円"↑ ↑↑ ↑↑$を付ける {}で囲む {}で囲む{} の中の変数は、その変数の値に置き換えられて表示されます。
| 書き方 | 表示される内容 |
|---|---|
$"単価:{unitPrice}円" | 単価:120円(unitPrice の値が埋め込まれる) |
"単価:{unitPrice}円" | 単価:{unitPrice}円($ を付けないと、そのまま文字列として扱われる) |
$ を付け忘れると、変数名がそのまま文字として表示されてしまいます。
変数を使わずに同じ表示をする場合
Section titled “変数を使わずに同じ表示をする場合”文字列補間を使わない場合、次のように + で文字列を連結することもできます。
Console.WriteLine("単価:" + unitPrice + "円");実行結果は同じになります。
単価:120円| 書き方 | 例 |
|---|---|
| 文字列補間 | Console.WriteLine($"単価:{unitPrice}円"); |
| 文字列連結 | Console.WriteLine("単価:" + unitPrice + "円"); |
どちらも使えますが、変数が多くなると文字列補間の方が読みやすいことが多いです。
補足:文字列補間と数値の自動変換
unitPriceはint型(数値)ですが、$"単価:{unitPrice}円"のように書くと、自動的に文字列に変換されて埋め込まれます。同様に、
"単価:" + unitPrice + "円"のような文字列連結でも、unitPriceは自動的に文字列に変換されます。
2-5 変数名の付け方
Section titled “2-5 変数名の付け方”変数名は意味が分かる名前にする
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 は別 |
| 日本語も使えるが、研修では半角英数字を推奨 | 社員名 は避ける(Git や他ツールとの連携で文字化け・誤動作の原因になる場合があるため) |
キャメルケース
Section titled “キャメルケース”C# では、ローカル変数には キャメルケース を使うことが多いです。
キャメルケースとは、最初の単語を小文字で始め、2 つ目以降の単語の先頭を大文字にする書き方です。
例:
employeeIdemployeeNamedepartmentNametotalPricetrainingDay本研修でも、変数名は基本的にキャメルケースで書きます。
SQL の列名と C# の変数名
Section titled “SQL の列名と C# の変数名”SQL 研修では、テーブルの列名にスネークケース(employee_id、department_name)を使いました。
C# では、変数名にキャメルケースを使うため、書き方が変わります。
| SQL の列名 | C# の変数名 |
|---|---|
employee_id | employeeId |
employee_name | employeeName |
department_id | departmentId |
department_name | departmentName |
hiredate | hireDate |
同じ意味のデータを扱っていても、言語によって命名規則が異なります。
C# のコードを書くときは、キャメルケースで統一しましょう。
エラーになる例:数字から始まる変数名
Section titled “エラーになる例:数字から始まる変数名”次のコードはエラーになります。
int 1stScore = 80;変数名を数字で始めることはできません。
次のように修正します。
int firstScore = 80;エラーになる例:空白を含む変数名
Section titled “エラーになる例:空白を含む変数名”次のコードはエラーになります。
string employee name = "山田二郎";変数名に空白を含めることはできません。
次のように修正します。
string employeeName = "山田二郎";2-6 変数の型
Section titled “2-6 変数の型”型とは、変数に入れられる値の種類を表すものです。
C# でよく使う型を整理します。
| 型 | 入れられる値の例 | 用途 |
|---|---|---|
int | 100, 23, -5 | 整数 |
string | "山田二郎" | 文字列 |
double | 3.14, 1.414 | 小数 |
decimal | 1280.5m | 金額など誤差を避けたい小数 |
bool | true, false | 真偽値 |
char | 'A', 'あ' | 1 文字 |
C# では、変数ごとに型があります。
この章では、まず int と string を中心に扱います。
その他の型は、特徴だけ紹介します。詳しい使い方は、後の章で必要になったときに学びます。
int は整数を扱う型です。
int score = 85;int quantity = 4;int employeeId = 1001;int salary = 500000;小数を入れることはできません。
エラーになる例:
int rate = 1.5;このコードを実行すると、次のようなエラーが表示されます。
型 'double' を 'int' に暗黙的に変換できません。1.5 は小数として扱われるため、整数用の int 型にはそのまま入れられません。
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 weight = 65.3;身長、体重、割合などを扱うときに使います。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { double height = 170.5; Console.WriteLine($"身長:{height}cm"); } }}実行結果:
身長:170.5cmdecimal 型
Section titled “decimal 型”decimal は、小数を扱う型の 1 つです。
特に金額計算など、誤差を避けたい 場面で使われることがあります。
decimal 型の数値には、末尾に m を付けます。
decimal price = 1280m;decimal taxRate = 1.10m;decimal priceIncludingTax = price * taxRate;
Console.WriteLine(priceIncludingTax);実行結果:
1408.00末尾の 0 がそのまま表示されていることに注目してください。
これは decimal が 計算の精度をそのまま保持する 仕様によるものです。
補足:double と decimal
doubleもdecimalも小数を扱えます。
型 主な用途 特徴 double身長、距離など、誤差が許容される計算 高速だが、わずかな誤差が出ることがある decimal金額計算など、誤差を避けたい計算 正確だが、 doubleより処理が遅いこの章では、まず「小数を扱う型には種類がある」ことを知っておけば十分です。
bool 型
Section titled “bool 型”bool は、真偽値を扱う型です。
入れられる値は次の 2 つだけです。
truefalse例:
bool isActive = true;bool isDeleted = false;
Console.WriteLine(isActive);Console.WriteLine(isDeleted);実行結果:
TrueFalse補足:表示時は先頭が大文字になる
コードで書くときは
true/false(すべて小文字)です。 しかし、Console.WriteLineで表示すると、True/False(先頭が大文字)で表示されます。これは C# の仕様です。表示の見た目だけが変わるもので、値そのものは変わりません。
bool は、後の章で学ぶ条件分岐と深く関係します。
char 型
Section titled “char 型”char は、1 文字を扱う型です。
char の値は '(シングルクォーテーション)で囲みます。
char rank = 'A';char symbol = '*';char kana = 'あ';string と char の違いに注意してください。
| 型 | 例 | 囲む記号 |
|---|---|---|
string | "A" | "(ダブルクォーテーション) |
char | 'A' | '(シングルクォーテーション) |
次のコードはエラーになります。
char rank = "A";char は 1 文字を ' で囲む必要があるためです。
正しくは次のように書きます。
char rank = 'A';2-7 var を使った変数宣言
Section titled “2-7 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も読めるようにしていきます。
var を使えない場面
Section titled “var を使えない場面”var は、右側の値から型を判断するため、宣言と代入を分けるときには使えません。
エラーになる例:
var age;age = 23;宣言時に値を代入する場合のみ、var が使えます。
var age = 23;2-8 キーボードから入力する
Section titled “2-8 キーボードから入力する”Console.ReadLine
Section titled “Console.ReadLine”Console.ReadLine を使うと、キーボードから入力された文字を受け取れます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { Console.WriteLine("名前を入力してください。");
string name = Console.ReadLine();
Console.WriteLine($"{name}さん、こんにちは。"); } }}実行例:
名前を入力してください。山田二郎山田二郎さん、こんにちは。Console.ReadLine で受け取った値は、文字列(string)として 扱われます。
Console.Write と組み合わせる
Section titled “Console.Write と組み合わせる”第 1 章で学んだ Console.Write(改行しない表示)と組み合わせると、入力プロンプトと入力を 1 行にまとめられます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { Console.Write("名前を入力してください:");
string name = Console.ReadLine();
Console.WriteLine($"{name}さん、こんにちは。"); } }}実行例:
名前を入力してください:山田二郎山田二郎さん、こんにちは。Console.Write を使うと、入力欄が「:」の後ろにそのまま続きます。
入力された社員名を表示する
Section titled “入力された社員名を表示する”次のコードを入力して実行してください。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { Console.Write("社員名を入力してください:");
string employeeName = Console.ReadLine();
Console.WriteLine($"入力された社員名:{employeeName}"); } }}実行例:
社員名を入力してください:佐藤昭夫入力された社員名:佐藤昭夫入力された値は常に文字列
Section titled “入力された値は常に文字列”Console.ReadLine で受け取った値は、たとえ数字を入力しても、文字列として扱われます。
namespace Ch02_Variables{ internal class Program { static void Main(string[] args) { Console.Write("数値を入力してください:");
string input = Console.ReadLine();
Console.WriteLine($"入力された値:{input}"); } }}実行例:
数値を入力してください:100入力された値:100表示上は 100 ですが、変数 input の型は string です。
そのため、次のように計算しようとしてもエラーになります。
string input = Console.ReadLine();int result = input + 50; // エラーこのコードでは、input + 50 の + が 文字列の連結 として扱われ、結果は文字列(たとえば "10050")になります。
それを int 型の変数 result に入れようとして、「文字列を整数に代入できない」というエラーが出ます。
型 'string' を 'int' に暗黙的に変換できません。Console.ReadLine で受け取った文字列を数値として計算するには、型変換 という操作が必要です。
型変換は、第 3 章で学習します。
よくあるつまずき
Section titled “よくあるつまずき”この章でよくあるつまずきを確認します。
| つまずき | 原因 | 対応 |
|---|---|---|
| 変数名に赤い波線が出る | 変数名のルールに違反している | 数字始まり、空白、予約語を使っていないか確認する |
string name = 山田二郎; がエラーになる | 文字列を " で囲んでいない | "山田二郎" のように書く |
int age = "23"; がエラーになる | int 型に文字列を入れようとしている | int age = 23; と書く(" を外す) |
char rank = "A"; がエラーになる | char に文字列を代入している | char rank = 'A'; と書く(' を使う) |
decimal price = 1280.5; がエラーになる | decimal の数値に m がない | decimal price = 1280.5m; と書く |
$"単価:{unitPrice}" の表示で {unitPrice} がそのまま出る | 文字列の前に $ を付け忘れている | $"単価:{unitPrice}" のように $ を付ける |
Console.ReadLine() の結果を数値として計算できない | 入力値は文字列として受け取られる | 第 3 章で型変換を学習する |
| 表示結果が古い | 保存せずに実行している | Ctrl + S で保存してから実行する |
bool が true ではなく True と表示される | 仕様 | 表示時は先頭が大文字になる(動作は正常) |
Visual Studio や Git で発生するエラーへの対応は、付録E「トラブルシューティング」 にまとめています。
学んだことチェック
Section titled “学んだことチェック”次の項目について、自分で説明できるか確認してください。
- 変数とは何かを説明できる
- 変数の宣言とは何かを説明できる
- 代入とは何かを説明できる
- 初期化とは何かを説明できる
-
int型の変数を作成できる -
string型の変数を作成できる - 変数の値を
Console.WriteLineで表示できる - 変数を使って計算できる
- 文字列補間
$"..."で変数の値を埋め込める - 変数名の基本ルールを説明できる
- キャメルケースで変数名を付けられる
-
double、decimal、bool、charの概要を説明できる -
decimalの値には末尾にmを付けることを知っている -
Console.ReadLineで入力を受け取れる -
Console.ReadLineの結果は文字列であることを説明できる -
varと型推論の役割をおおまかに説明できる
次の内容を、自分の言葉で説明してください。
- 変数とは何ですか。
intとstringの違いは何ですか。- 代入とは何ですか。
- 初期化とは何ですか。
- 変数名を付けるときに気を付けることは何ですか。
- 文字列補間($”…”) とは何ですか。
Console.ReadLineは何をする命令ですか。
説明するときは、完全な答えでなくても構いません。
自分の言葉で説明しようとすることが大切です。
この章の演習課題に取り組みます。
制限時間は 40 分 です。
時間内にすべて完成しなくても構いません。
できたところまでを保存し、Git に提出してください。
演習の進め方の詳細は、付録A「演習の進め方」 を参照してください。
この章の演習の進め方
Section titled “この章の演習の進め方”この章でも、課題ごとにプロジェクトを作成 します。
1 つのソリューション Kadai02 の中に、課題ごとのプロジェクトを並べて作成します。
Kadai02/ ← 課題用ソリューション Kadai02.sln Kd02_01_EmployeeInfo/ ← 課題2-1 のプロジェクト Program.cs Kd02_02_ProductAmount/ ← 課題2-2 のプロジェクト Program.cs Kd02_03_InputName/ ← 課題2-3 のプロジェクト Program.cs Kd02_04_TaxIncludedPrice/ ← 課題2-4 のプロジェクト(発展) Program.cs各課題のプロジェクト名は次の通りです。
| 課題 | プロジェクト名 |
|---|---|
| 課題 2-1 | Kd02_01_EmployeeInfo |
| 課題 2-2 | Kd02_02_ProductAmount |
| 課題 2-3 | Kd02_03_InputName |
| 課題 2-4(発展) | Kd02_04_TaxIncludedPrice |
補足:ソリューションに複数のプロジェクトを追加する方法
最初の課題で
Kadai02ソリューションとKd02_01_EmployeeInfoプロジェクトを同時に作成します。2 つ目以降の課題は、ソリューションエクスプローラーで
Kadai02を右クリックし、追加→新しいプロジェクトから追加します。
演習の共通ルール
Section titled “演習の共通ルール”以下は、本章のすべての課題に共通する作業です。各課題の本文には繰り返し書きません。
| 作業 | 内容 | 参照 |
|---|---|---|
| プロジェクト作成時の設定 | 「最上位レベルのステートメントを使用しない」にチェック | 第 1 章 1-1 |
| csproj の編集 | <Nullable>disable</Nullable> に変更 | 第 1 章 1-1 |
| コードを書く場所 | Main メソッドの中(本章 2-2 などのサンプル形式と同じ) | 2-2 |
| ファイルを保存して実行 | Ctrl + S で保存 → F5 で実行 | 第 1 章 1-2 |
特に 2 つ目以降のプロジェクト(Kd02_02_ProductAmount など)も、新規追加するたびに csproj の Nullable を disable に変更する 必要があります。忘れると警告が出やすくなります。
演習課題のコードは、本文と同じ namespace + class Program + Main の枠組みの中に書きます。
まずは、全員が必須課題に取り組んでください。
課題 2-1 社員情報を変数で表示する
Section titled “課題 2-1 社員情報を変数で表示する”プロジェクト名: Kd02_01_EmployeeInfo
次の情報を変数に代入し、画面に表示してください。
| 項目 | 値 |
|---|---|
| 社員番号 | 1001 |
| 氏名 | "山田二郎" |
| 部署 | "総務" |
| 研修日数 | 2 |
実行結果例:
社員番号:1001氏名:山田二郎部署:総務研修日数:2日目条件:
int型の変数を 1 つ以上使うstring型の変数を 2 つ以上使う- 変数名は意味が分かる名前にする
- 文字列補間 $”…” を使う
課題 2-2 商品金額を計算する
Section titled “課題 2-2 商品金額を計算する”プロジェクト名: Kd02_02_ProductAmount
次の条件で、商品の合計金額を計算して表示してください。
| 項目 | 値 |
|---|---|
| 商品名 | "ノート" |
| 単価 | 180 |
| 数量 | 5 |
実行結果例:
商品名:ノート単価:180円数量:5個合計:900円条件:
- 単価、数量、合計金額を変数で管理する
- 合計金額は計算で求める
- 計算結果を変数に保存してから表示する
- 文字列補間 $”…” を使う
課題 2-3 入力された名前を表示する
Section titled “課題 2-3 入力された名前を表示する”プロジェクト名: Kd02_03_InputName
Console.ReadLine を使って名前を入力し、あいさつ文を表示してください。
実行例:
名前を入力してください:佐藤昭夫佐藤昭夫さん、こんにちは。条件:
Console.Writeを使ってプロンプトを表示する(改行しない)- 入力された名前を
string型の変数に保存する - 文字列補間 $”…” を使って表示する
必須課題が終わった人は、発展課題に取り組んでください。
課題 2-4 税込金額を計算する
Section titled “課題 2-4 税込金額を計算する”プロジェクト名: Kd02_04_TaxIncludedPrice
次の条件で、税込金額を計算してください。
| 項目 | 値 |
|---|---|
| 商品名 | "キーボード" |
| 税抜価格 | 2980m |
| 消費税率 | 1.10m |
実行結果例:
商品名:キーボード税抜価格:2980円税込価格:3278.00円条件:
decimal型を使う- 数値の末尾に
mを付ける - 税込価格は計算で求める
- 文字列補間 $”…” を使う
補足:
decimalの計算結果について
2980m * 1.10mの結果は、末尾に00が付いた3278.00として表示されます。これは
decimalが計算の精度をそのまま保持する仕様によるものです。 表示形式を調整したい場合は、後の章で学習する書式指定を使います。
提出前チェックリスト
Section titled “提出前チェックリスト”提出前に、次の項目を確認してください。
- プログラムを Visual Studio から実行できる
- csproj の Nullable を disable にしている
-
int型の変数を使っている -
string型の変数を使っている - 変数名が分かりやすい
- 変数に値を代入している
- 変数の値を表示している
- 計算結果を変数に保存している
- 文字列補間 $”…” を使っている
-
Console.ReadLineを使った課題を実行できる - セミコロンの付け忘れがない
- 全角記号が混ざっていない
- インデントが整っている
Git への提出
Section titled “Git への提出”第 2 章の課題プロジェクト群(Kadai02 ソリューション)を Git に提出します。
git statusgit add .git commit -m "Chapter02 変数と変数の型"git pushGit の詳しい操作は、付録 C「Git のインストールと提出ルール」 を参照してください。
この章のまとめ
Section titled “この章のまとめ”この章では、変数と変数の型について学習しました。
この章で学んだ主な内容は次の通りです。
- 変数は、値を一時的に保存するための仕組みである
- 変数を使うには、型と変数名を指定して宣言する
- 変数に値を入れることを代入という
- 変数を宣言すると同時に値を入れることを初期化という
intは整数を扱う型であるstringは文字列を扱う型であるdoubleやdecimalは小数を扱う型であるdecimalの値には末尾にmを付けるboolはtrueまたはfalseを扱う型であるboolの値を表示すると先頭が大文字になるcharは 1 文字を扱う型である- 文字列補間 $”…” を使うと、文字列の中に変数の値を埋め込める
- 変数名は意味が分かる名前にする
- C# ではローカル変数名にキャメルケースを使うことが多い
- C# では変数名の大文字と小文字を区別する
varを使うと、右側の値から型を自動判断する 型推論 が働くConsole.ReadLineを使うと、キーボードから入力された文字列を受け取れるConsole.ReadLineの結果は常に文字列(string)である
次章では、演算と演算子 を学習します。
第 1 章では直接計算を表示し、第 2 章では変数に値を保存しました。
次章では、変数を使って計算したり、文字列を組み立てたり、型変換 を行ったりします。
Console.ReadLine で入力された文字列を数値として計算する方法も、次の章で学びます。