早速、前回使用したプロジェクトを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) { // ここから 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 ) + "円です。"); } // ここまで } }
前回の関数を作ったコードです。
似たような処理を関数を作って引数を渡すことでコードを簡素化しました。
関数は途中で中断したり関数の読み出し元に値を返すこともできます。
今回の準備をするのでコメント間の行を削除します。
関数を途中で中断
このようなコードを作ります。
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) { // ここから test(11); Console.ReadLine(); // ここまで } // ここから static void test(int a) { if ( a > 10 ) { Console.WriteLine("関数を途中で中断しました"); return; } Console.WriteLine("関数を最後まで実行しました。"); } // ここまで } }
test関数を呼び出すときの引数を11以上にすると「関数を途中で中断しました」が表示され関数が途中で中断され「関数を最後まで実行しました。」は表示されません。
引数を10以下にすると「関数を途中で中断しました」は表示されず「関数を最後まで実行しました。」が表示され関数が最後まで実行されます。
returnを書くとその場所で関数は中断され呼び出し物に制御が戻ります。
戻り値
関数は呼び出しもへ値を返すことができて、その値を戻り値と言います。
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) { // ここから Console.WriteLine(test(2, 3)); Console.ReadLine(); // ここまで } // ここから static int test(int a,int b) { return a * b; } // ここまで } }
このようなコードを書きます。
関数テストに引数を二つ渡してその戻り値をコンソールに表示します。
関数testは引数を乗算してその結果をreturnを使って呼び出し元へ返します。
returnの後に値を指定することで呼び出し元に値を戻すことができるのです。
又、関数名の前にvoidと書いていましたがこれは戻り値が無い関数を意味していましたが、今回はint型の値を戻すのでtest関数はvoidの代わりににintとしています。
以上がreturnと戻り値でした。
それではまた次で!!。
コメント