はじめてのC#入門
第4回 C#のブロックを知ろう!

C#を書く時のルール、まずは「ブロック」を覚えよう!

こんにちは!

2週間ぶりに外出したら、知らない間に季節が変わっててびびったナチュラルヒッキーエンジニアあらたまです。

今日は『はじめてのC#入門』の第4回目。

今回はC#の「ブロック」というものを覚えていきたいと思います。

自動生成されたプログラムを見てみよう

前回は 『コンソールアプリケーション』のプロジェクトを新規作成しましたね。

その時にVisual Studioによって自動生成されたプログラムを見てみましょう。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _1stConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}

いろいろ英語みたいな、でもちょっと違うみたいなのが書いてありますね。

これらのひとつひとつはまだ気にしなくて大丈夫!
今回おぼえていただくのはこれ、


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace _1stConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    }
    

{}です!(ちなみに、波かっこと呼ぶみたいです)

波かっこは範囲を表す

この波かっこ、直前に書かれた内容の範囲を表します。

例えば、
static void Main(string[] args)
の範囲は。。


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace _1stConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    }

です。他に、

class Program
の範囲は。。


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace _1stConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    }

範囲の中に、別の範囲を含むことができるのですね。そして、

namespace _1stConsoleApp
の範囲は。。


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace _1stConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
            }
        }
    }

ですね。

ちなみにこの波かっこで囲まれた範囲のことを「ブロック」と呼びます。

ブロック(block)という英単語は「かたまり」の意味です。 波かっこで囲まれた範囲のことを、ひとつのかたまりとして捉えているわけですね。

ブロックの感覚をつかもう

ブロックのイメージをつかめそうな下の例を作ってみました。

あくまでブロックのイメージをつかむための例で、これはプログラムでもなんでもありません。

神戸市立垂水中学校
{
    1年生
    {
        1-1組
        {
            佐藤
        }
    }
    2年生
    {
        2-1組
        {
            高宮
        }
        2-2組
        {
            鈴木
            石田
        }
        2-3組
        {
            神田
        }
    }
    3年生
    {
        3-1組 
        {
            山田
            田中
        }
        3-2組 
        {
            丸吉
            横山
        }
    }
}

はい、あらたまの母校で御座います。

神戸市立垂水中学校には1年から3年までの学年があり、 その各学年にはクラスがあり、クラスの中には生徒がいる、ということをブロックを使って表しています。

例えば、この中で「神戸市立垂水中学校」のブロックは。。

神戸市立垂水中学校
{
    1年生
    {
        1-1組
        {
            佐藤
        }
    }
    2年生
    {
        2-1組
        {
            高宮
        }
        2-2組
        {
            鈴木
            石田
        }
    }
    3年生
    {
        3-1組 
        {
            山田
            田中
        }
        3-2組 
        {
            丸吉
            横山
        }
    }
}

ですね。1年生~3年生まですべてがブロックに含まれます。

では「3年生」のブロックは。。

神戸市立垂水中学校
{
    1年生
    {
        1-1組
        {
            佐藤
        }
    }
    2年生
    {
        2-1組
        {
            高宮
        }
        2-2組
        {
            鈴木
            石田
        }
    }
    3年生
    {
        3-1組
        {
            山田
            田中
        }
        3-2組 
        {
            丸吉
            横山
        }
    }
}

ですね。3学年のなかには3-1組と3-2組が含まれます。

では「2-2組」のブロックは。。

神戸市立垂水中学校
{
    1年生
    {
        1-1組
        {
            佐藤
        }
    }
    2年生
    {
        2-1組
        {
            高宮
        }
        2-2組
        {
            鈴木
            石田
        }
    }
    3年生
    {
        3-1組 
        {
            山田
            田中
        }
        3-2組 
        {
            丸吉
            横山
        }
    }
}

ですね。

このように、直前に書かれたラベルの範囲を表すもの、それがブロックなのです。

今回はここまでです!

何となくブロックの感覚はつかめましたか?

次回はこれをふまえて、実際にプログラムを開発していきたいと思います!

次回へ続く。

>> 続きの記事
【はじめてのC#入門】第5回 ユーザーの入力待ちをしてみよう!