C#を始めよう(超入門)|関数を作る

C#を始めよう(超入門)|関数を作る

C#

前回まで使用していたプロジェクトをVisual Studioで開きます。

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

namespace testProjects
{
    class Program
    {
        static void Main(string[] args)
        {
            /*  ここから追加します   */
            int int_i = 1;
            int int_j = 2;

            if (int_i == 1 && int_j == 2)
            {
                Console.WriteLine("int_iは1です。");
                Console.WriteLine("int_jは2です。");
            }
            else
            {
                Console.WriteLine("int_iが1以外の可能性があります。");
                Console.WriteLine("int_jが2以外の可能性があります。");
            }

            Console.ReadLine();
            /*  ここまで追加します*/
        }
    }
}

前回はif文と関係演算子、論理演算子についてコーディングしました。

今回は関数について触れていきますが、関数と言っても数学で言う関数とは違います。
前回までのソースからコメント間の行を消して準備します。

関数とは?

そもそも関数ってなんだろう?。
関数は意識しないうちに使っていると思いますが、超入門ですので関数について考えてみます。

説明が難しいのですが、関数とは複数の処理をパッケージ化したものと思って下さい。
構造化プログラミングには必要不可欠な機能だと思います。

関数を使うと何ができる?

色々メリットがあるのですが、同じような処理(重複)を何度も書かなくてよくなります。
一度作ったコードを再利用できるのでコーディングを効率的にできます。

何をもとに何を生み出すかだけを知っていればよくて関数内部でどのような処理をしているかを意識しなくても使えるので複数人でプログラミングする時にでも有効的です。

関数に入る前にベースとなるソースを作ります。

単価・数量・金額を表示するプログラム

次のような簡単なプログラムを書きます。

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

namespace testProjects
{
    class Program
    {
        static void Main(string[] args)
        {
            /*  ここから追加します   */
            int int_apple_price;
            int int_apple_number;
            int int_orange_price;
            int int_orange_number;
            int int_banana_price;
            int int_banana_number;

            int_apple_price     =   100;
            int_apple_number     =   5;

            int_orange_price    =   150;
            int_orange_number    =   7;

            int_banana_price    =   80;
            int_banana_number    =   10;

            Console.WriteLine("リンゴの単価は" + int_apple_price   +   "円です。");
            Console.WriteLine("リンゴの数は" + int_apple_number + "個です。");
            Console.WriteLine("リンゴの合計金額は" + (   int_apple_price *   int_apple_number)    +   "円です。");

            Console.WriteLine("みかんの単価は" + int_orange_price + "円です。");
            Console.WriteLine("みかんの数は" + int_orange_number + "個です。");
            Console.WriteLine("みかんの合計金額は" + (int_orange_price * int_orange_number) + "円です。");

            Console.WriteLine("バナナの単価は" + int_banana_price + "円です。");
            Console.WriteLine("バナナの数は" + int_banana_number + "個です。");
            Console.WriteLine("バナナの合計金額は" + (int_banana_price * int_banana_number) + "円です。");

            Console.ReadLine();
            /*  ここまで追加します*/
        }
    }
}

リンゴ、みかん、バナナ、それぞれの単価、数量、金額を表示するプログラムです。
似たような処理を何度も書いているのが分かります。
これと同じ動作をするように関数を使って書いてみます。

重複したコードを関数化

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

namespace testProjects
{
    class Program
    {
        static void Main(string[] args)
        {
            //  ここから
            output("リンゴ",100,5);
            output("みかん", 150, 7);
            output("バナナ", 80, 10);

            Console.ReadLine();
            //  ここまで
        }
        //  ここから
        static void output(string   name,   int price, int number)
        {
            Console.WriteLine(name  +   "の単価は" + price  + "円です。");
            Console.WriteLine(name  +   "の数は"   + number + "個です。");
            Console.WriteLine(name  +   "の合計金額は" + (    price * number  ) + "円です。");
        }
        //  ここまで
    }
}

似たような処理をoutput関数にまとめると、こんなにスッキリしたコードになりました。
もちろん先ほどまでのコードと同様の結果が出力されます。

関数を呼び出す際、リンゴ等の名称と単価、数量を渡しています。
この渡しているものを引数と言い、関数内ではその引数を打て取って計算したりコンソールに出力しています。

 

以上で関数についてでした。
それでは次回!!。

コメント

タイトルとURLをコピーしました