【変数から段階的に学習 第3回】
変数から段階的に学習:第1回|第2回|第3回(今ここ)|[目次へ]
第1回・第2回の復習
第1回・第2回で、プログラムの動き方(実行の仕組み)を学びました。今回は、プログラムが扱うデータの持ち方の進化を見ていきます。
プログラムは「情報整理」の歴史
プログラミングを学んでいると
- 変数
- 配列
- クラス
- List
など、色々なものが出てきます。
一見すると「なぜこんなに増えていくの?」と思うかもしれません。
実はこれは情報を整理する方法の進化なのです。
例として生徒名簿を作ってみましょう。
1 変数で作る
基礎で習うのは変数です。
string student1Name = "山田";
string student2Name = "佐々木";
表示してみます。
Console.WriteLine(student1Name);
実行結果
山田
できました。
しかし問題がある
生徒が増えるとこうなります。
student1Name
student2Name
student3Name
student4Name
さらに
student1Hobby
student2Hobby
student3Hobby
などが増えていきます。
これは少し扱いづらいですね。
2 配列
そこで登場するのが配列です。
string[] studentsName = { "山田", "佐々木" };
string[] studentsHobby = { "ハイキング", "映画" };
表示します。
Console.WriteLine(studentsName[0]);
Console.WriteLine(studentsHobby[0]);
実行結果
山田
ハイキング
すっきりしました。
しかし配列にも問題がある
例えばこうするとどうでしょう。
string[] studentsName = { "山田", "佐々木" };
string[] studentsHobby = { "映画", "ハイキング" };
表示すると
山田
映画
になってしまいます。
山田さんの趣味が変わってしまいました。
これは名前の配列と趣味の配列が別々に管理されているためです。
人間の整理方法
人間ならこうします。
山田
└ 趣味:ハイキング
佐々木
└ 趣味:映画
つまり1人の情報をまとめるのです。
3 クラス
これを実現するのがクラスです。
class Student
{
public string Name;
public string Hobby;
}
これは生徒の設計図です。
生徒を作る
Student student1 = new Student();
student1.Name = "山田";
student1.Hobby = "ハイキング";
イメージ
student1
名前:山田
趣味:ハイキング
表示する
Console.WriteLine(student1.Name);
Console.WriteLine(student1.Hobby);
実行結果
山田
ハイキング
しかしまだ問題がある
生徒が増えるとこうなります。
student1
student2
student3
student4
また管理が大変です。
クラスは「型」の一種
ここで大切な考え方があります。
int や string は「型」です。クラスで作った Student も、同じように型の一種です。
| 型 | 並べたもの |
|---|---|
| int | int[](int の配列) |
| string | string[](string の配列) |
| Student | List<Student>(Student の並び) |
配列のときは string を並べました。今度は Student を並べるのです。
Student という型(設計図)
↓
student1, student2, student3... と1つずつ作る
↓
それらを「並べてまとめる」入れ物 = List<Student>
4 List
そこで登場するのがListです。
List<Student> students = new List<Student>();
生徒を追加します。
students.Add(student1);
イメージ
students
[0] 山田
[1] 佐々木
表示する
Console.WriteLine(students[0].Name);
Console.WriteLine(students[0].Hobby);
プログラムの進化
ここまでの流れはこうです。
変数
↓
配列
↓
クラス
↓
List
すべて情報整理の方法です。
実際のシステムでは?
実際のシステムではさらに進みます。
変数
↓
配列
↓
クラス
↓
List
↓
データベース
例えば
- 学校の名簿
- 銀行口座
- ネットショップ
などは、すべてこの仕組みの延長です。
プログラミングは難しい?
実はプログラミングは難しい計算の世界ではありません。
多くの場合は情報を整理する技術です。




ディスカッション
コメント一覧
まだ、コメントがありません