自分磨きのITノート

プログラミング(C#、VB.NET)言語やデータベースの役立つ情報を初心者から中級者向けに発信します。

C#でプログラミング入門 ー 関数

前回は、配列をやりました。

今回は、関数(メソッド)です。プログラミングの関数は、主のプログラム部分とは別の場所に決まった処理を定義しておき、いつでも利用できるようにしておくものです。算数のように変数に値を渡して、方程式のように使用することもできます。記事の随所にも出てきた数値を文字列にするToString()も関数です(クラスに属する関数)。

構文は以下のようになります。

関数(メソッド)の書き方

戻り値の型 関数名(引数部){
 関数内の処理;
 return 戻り値;
}

早速、関数を使ったサンプルソースです。

C#

public class kansu{
    // 決まった文字列を出力するメソッド
    public static void outputLine(){
        System.Console.WriteLine("=-=-=-=-=");
    }
    // 三角形の面積を計算するメソッド
    public static double calc_menseki_sankaku(int teihen, int takasa){
        double ret = (teihen*takasa)/2 ;
        return ret;
    }
    public static void Main(){
        // 文字列を出力するメソッドの呼び出し
        outputLine();
        // calc_menseki_sankakuを呼び出している
        double kekka = calc_menseki_sankaku(5,10);
        System.Console.WriteLine(kekka.ToString());
        // もう一度 文字列を出力するメソッドの呼び出し
        outputLine();
    }
}

結果

=-=-=-=-=
25
=-=-=-=-=
1つ目のoutputLine()関数は、値を戻さない関数です。main関数と同じく値を戻さない処理だけの関数は頭にvoidを記述します。(publicstaticは、"クラス"の記事などで説明したいと思います)

関数名は、英数字とアンダーバーが使用できます。値を引き渡す(引数部)は、省略したり複数引き渡すことができます。outputLineの処理内容は、単純ですが出力結果に文字列を出力するというものです。main側から呼び出したい時は、outputLine();と記述することで、関数へプログラム処理をジャンプさせることができます。関数呼び出しは、引数がなくても括弧”( )”を忘れずにつけましょう。関数側のプログラム処理が終われば、mainへと戻ってきます。

続いて2つ目のcalc_menseki_sankaku(int ,int)関数は、三角形の面積を計算し、doubleを戻り値としています。第一引数にteihenと第二引数にtakasaの値を引数に渡して、関数内で計算しています。関数の最後で、returnを記述し、関数の戻り値型と同じ型を返しています。


複雑なプログラムをmain関数にずらずらと書いていくと、ソースコードがとても長くなり、重複する処理が多くなります。関数を用いることにより、簡素化やメンテナンス性をよくしていきます。

引数の値渡し、参照渡し

続きを読む

C#でプログラミング入門 ― 配列

前回は、繰り返し構文をやりました。今回は配列です。

配列は、一つの変数に複数の値を入れることができます。
例えば、5つの同じ型を使うとします。5つ変数を用意するのではなく、一つの変数を配列にします。そうすると変数を5つ用意したことになります。

では、ソースコードを見てみましょう。

C#

public class Hairetu{
    public static void Main(){
        int[] suji = new int[3];
        int gokei=0;
        suji[0] = 10;
        suji[1] = 20;
        suji[2] = 30;
        for (int i=0; i<suji.Length; i++){
            gokei += suji[i];
        }
        System.Console.WriteLine((gokei/suji.Length).ToString());
    }
}

結果

20

変数を配列にする場合、型の後に"[ ]"を書き、そのあとにnew int [箱の数]で配列を宣言しています。newという新しいキーワードが出てきましたが、値型の変数とは違いこう書くんだ!と覚えてください。

※ ここでは詳しく説明しませんが、配列は値型ではなく参照型なります。IEnumerableインターフェースが継承されたり、関数(メソッド)が違ったりします。 

サンプルプログラムでは、数値の箱を3つ(int[3])用意しました。
値を入れる場合は、"[ ]"の中に番号(添字)を書いて対象の箱にいれています。ちなみにこの添字は、0から始まります。3つ用意しましたので、使う添字は0~2です。

※ CやC#・VB.NET・javaの世界では、添字は、0から始まります(先頭)。しかし、ExcelのVBA・VB6は1から始まるのでご注意を!

続いてFor文です。suji変数に.Lengthと書くと、配列の数を取得できます。「配列の数だけ繰り返す」というFor条件になります。
繰り返し中では、下記の処理を記述しています。
 gokei += suji[i];
は、
 gokei = gokei + suji[i];
になり、元のgokei変数と配列の値を足して、gokei変数に代入し直しています。"+="は、値を加算したい時などによく使います。減算したい時は、”-=”です。

最後に平均を出力して終わっています。結果の数値を括弧でくくって.ToString()で文字列にしています。計算を括弧でくくっている理由は、計算結果が数値型になるためです。


配列はforeach文が使える

続きを読む

C#でプログラミング入門 ー 繰り返し while文

前回は、繰り返し構文のfor文をやりました。今回は、同じ"繰り返し"で、while文を説明します。

for文はカウントしながら繰り返す時によく使いますが、while文はある条件である限り繰り返す時に使用することが多いです。条件が終わるまで永久に繰り返すことができるので、無限ループに陥ることがり、プログラムが終わらない状態を作ることが可能です(>_<)(プログラムを強制終了させないと終われない)

繰り返す条件が正しいかしっかりチェック(テスト)を行うことは重要です。

最初に条件を書くwhile文

while文の繰り返し条件を書く場所は、最初と後いずれかに書くことができます。では、最初に書くパターンをお見せします。

C#

public class loop2{
    public static void Main(){
        int i=1;
        while (i<=5){
            System.Console.WriteLine(i.ToString());
            i++;
        }
        System.Console.WriteLine("プログラム終了!! iは" + i.ToString() + "でした。");
    }
}

結果

1
2
3
4
5
プログラム終了!! iは6でした。
for文で説明した時と同じようなプログラムです。whileの繰り返し条件部分「iが5以下なら繰り返す」と記述しています。そして、i++でiをインクリメントしています。while文には変数宣言と更新を書くところがないので、プログラム中に変数を更新するなどの対応が必要となります。インクリメントしてから最後にiを出力しているので、終了にはiが6になっています。

変数iに1~5以外の数値を入れて実行してみると…

iに10を入れた結果

プログラム終了!! iは10でした。
while文の中の処理にプログラムが入らず、処理が終わりました。

whileから抜けるには

続きを読む
Amazon
自己紹介
【管理人】
なみやん
【コメント】
プログラムを組むことが大好きな30代男性。IT系の仕事を10年ちょいやっています。このブログを通して知識を人に伝えることによって、自分をさらに磨こうと精進しています。応援よろしくお願いします。
免責事項
当サイトで紹介しているサンプルソースコードは自由に使用いただいても結構が、自己責任でお使いください。また、記事の内容が主観的であったり、努力していますが正しくなかったりする場合がございます。読者本人の判断にお任せいたします。