【変数から段階的に学習 第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 も、同じように型の一種です。

並べたもの
intint[](int の配列)
stringstring[](string の配列)
StudentList<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
    ↓
データベース

例えば

  • 学校の名簿
  • 銀行口座
  • ネットショップ

などは、すべてこの仕組みの延長です。


プログラミングは難しい?

実はプログラミングは難しい計算の世界ではありません。

多くの場合は情報を整理する技術です。

訪問数 6 回, 今日の訪問数 6回

広告

C#

Posted by hidepon