入力を促すメッセージを表示して、実数を入力してもらう。実数として解釈できる文字が入力されるまで繰り返す。別にそういう縛りはありません。関数の途中にも書けますし、1つの関数内に複数書けます。複数個のreturnを書きたくなる1番の例は条件分岐でしょう。以下のように、条件を満たすときと満たさない時で別の値を返したい場合などです。y;}分岐なしで関数の途中にreturnを書くこともできますが、この場合は、returnよりも後ろは実行されません。引数や戻り値は、なくてもよかったり、複数書けたりします。x2+y2+z2」といったように、入力が複数ある場合があります。C#の関数でもこのように引数が複数ある関数を作れます。区切って並べたものを引数リストといいます。数学ではあまり考えられませんが、C#では引数のない関数も定義できます。引数のない関数は、以下のように、引数リストを空にして定義します。同様に戻り値のない関数も定義できます。(「空の、何もない」という意味)というものにしておきます。"}\n");}戻り値のない物でも「関数」と呼ぶのはC言語やC++言語から受け継いだ習慣です。戻り値のないものは「サブルーチン」とか「プロシージャ」といって関数と区別する場合もあります。ちなみに、戻り値がない(void)の場合、returnは書けますが、returnの後ろには何も値を書かず、関数を途中で抜ける意味だけ持ちます。戻り値がvoidの関数はreturnの後ろに値を書けません。これはvoidの場合だけの特別な書き方になります。特別に書き方を変えないといけないというのが面倒になることがあります。戻り値がある場合はFunc、ない場合はActionと、別の型に代入して使うことになります。x;}そこで、以下のように、空っぽの値を用意して、voidの代わりに使うことですべて「戻り値あり」で統一する手法を時々使ったりします。x;}不格好なので積極的に使うものでもありませんが、統一のためにやむを得ないこともあったりします。一応意味があってこの名前を使っています。プログラミング用語しても使われるので、C#に限らず、たまに目にする言葉かもしれません。この名前は数学用語に由来します。数学では、以下のような表現をすることがあります。1とは0のみを持つ(1要素の)集合であるunitというのはこの意味での「1」を指します。先ほどの例ではdefautl(Unit)という意味のない値を返していますが、Unit型は、この意味のない値を1つだけ持つ型ということになります。複数の戻り値(タプル)C#では、基本的には戻り値は1つだけ返せます。6以前では複合型を1つ作って返していました。7この型に本当にちゃんとした意味があればいいんですが、この例の場合は見るからに大した意味がありません。「和(sum)と個数(count)を表すSumCount型」なんていわれなくても、sumとcountを見ればわかります。7では、以下のように書けるようになりました。count);}複数の戻り値を返しているような書き心地になります。count)という「名前のない型」(これをタプルと呼びます)を1つ作って、その値を返しています。詳細は名前のない複合型で説明します。数学の関数と違って、「状態」(state)を持っています。一般に、数学の関数は、引数と戻り値の関係だけを説明していて、同じ引数を与えた場合、常に同じ戻り値が返ります。いう変数に値を記録・書き換え(これを「状態を持つ」という)していて、呼ぶたびに状態が変わり、違う戻り値を返します。的にはフィールド(field)と呼びます。詳しくは「データの構造化」で説明します。引数についてはいくつか補足があります。value)を与えて、呼び出し時に省略できたり(optional)、名前付き(named)で引数を書けるようになりました。