2021年12月08日
川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!total 679 count

return: メソッドの実行結果を伝えよう

Written By: 川俣 晶連絡先

この章のテーマ §

 return文(ステートメント)を学習します。return文にはメソッドの実行を終了するという機能と、メソッドの戻り値を指定するという機能の2つがあります。

前提知識 §

Console.WriteLineメソッド, 文字列の基礎, 変数の基礎, 条件演算子, int型, if文, メソッドの基礎, ラムダ式の基礎

解説 §

 return文には2つの機能があります。

  • メソッドやラムダ式などをその場で終了させる
  • メソッドやラムダ式などの戻り値を指定する

 しかし、使い分けは単純ではありません。

 戻り値の型がvoidの場合は、単に終了させたい場所にreturn;と書くだけです。メソッドの終わりには書く必要はありません。もう終わりになるのは明確だからです。

 ところが、戻り値の型がvoid以外の場合は、メソッドを終了する全ての箇所にreturn 式;という文を書く必要があります。戻り値を指定しないで終了することはできないからです。

罠の数々 §

  • たとえループの中で使ってもreturn文を実行した時点で、即座にメソッドを終了させてしまう。ループの残りは永遠に実行されない
  • ラムダ式などの中でretun文を使ってもラムダ式を終了させるだけでメソッドは終了しない
  • return文の後に書ける式は、戻り値の型として指定した型のみ。返す値がないときも、何かの値は返さねばならない
  • 他にyield return文という似て非なる文があるので注意しよう

参考リンク §

return (C# リファレンス)

サンプルソース: kw_return §

var a = sub2(1);

sub1(a);

var b = sub2(2);

sub1(b);

void sub1(int x)

{

    if (x == 0)

    {

        Console.WriteLine("ありません。");

        return;

    }

    Console.WriteLine($"{x}個あります。");

}

int sub2(int number)

{

    if (number == 1)

    {

        return 0;

    }

    return 100;

}

実行結果 §

ありません。

100個あります。

リポジトリ §

https://github.com/autumn009/CSharpPrimer2

練習問題 §

 以下のプログラムの実行結果を予測してみよう。

x(3);

int x(int y)

{

    if( y == 0 ) return 0;

    Console.Write($"{y} ");

    return x(y - 1);

}

  1. 0
  2. 3
  3. 3 2 1
  4. 1 2 3
  5. エラーになり実行できない

[[解答]]

Facebook

キーワード【 川俣晶の縁側ソフトウェアnew_C#入門・全キーワード明快解説!
【new_C#入門・全キーワード明快解説!】の次のコンテンツ
2021年
12月
09日
foreach: コレクションの中味の数だけ繰り返せ!
3days 0 count
total 858 count
【new_C#入門・全キーワード明快解説!】の前のコンテンツ
2021年
12月
07日
列挙型の基礎: 名前を並べて型を定義しよう
3days 0 count
total 835 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

https://mag.autumn.org/tb.aspx/20211208102655
サイトの表紙【new_C#入門・全キーワード明快解説!】の表紙【new_C#入門・全キーワード明快解説!】のコンテンツ全リスト 【new_C#入門・全キーワード明快解説!】の入手全リスト 【new_C#入門・全キーワード明快解説!】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.