スポンサーリンク
※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~
目次
return文
return文は制御文(if文・for文など)です。
そして、制御文の内のジャンプ文の一種です。
ジャンプ文はreturn文以外にも、break文・continue文・goto文があります。
ただし、return文はメソッドと絡んで使われるため、制御文の章でなく、メソッドの章で扱われることが多いです。
return文は、「メソッド内の処理を終了させる」役割を持ちます。
強制的に処理を終わらせ、他の地点に処理の制御が飛ぶため、たしかにジャンプ文と言えます。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Return01 { class Program { static void Main(string[] args) { Console.WriteLine("処理1"); Console.WriteLine("処理2"); return; Console.WriteLine("処理3"); Console.WriteLine("処理4"); } } } |
実行結果
処理1
処理2
処理3の前にreturn文があるので、そこで処理が打ち切られます。
処理3と処理4は実行されません。
ちなみに、Visual Studioでコーディングすると、「到達できないコードが検出されました」と警告されます。
戻り値
return文は、戻り値のあるメソッドの場合、戻り値を指定しないといけません。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Return03 { class Program { static void Main(string[] args) { string str = Hello(); Console.WriteLine(str); } static string Hello() { Console.WriteLine("Helloを返します"); return "Hello"; } } } |
実行結果
Helloを返します
Hello
Helloメソッドは、戻り値のデータ型はstring型です。
ここでは、戻り値として、Helloを返します。
この戻り値を変数strが受け取っています。
戻り値を受け取らない
戻り値のあるメソッドだからといって、呼び出し元が戻り値を受け取る必要はありません。
例えば、以下のようなソースコードは実行可能です。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Return04 { class Program { static void Main(string[] args) { Hello(); } static string Hello() { Console.WriteLine("Helloを返します"); return "Hello"; } } } |
実行結果
Helloを返します
戻り値のあるメソッドを呼び出しています。
しかし、メソッドの戻り値(Hello)は、呼び出し元で使用されていません。
万が一、戻り値のあるメソッドを呼び出しているのに戻り値を受け取っていないというソースコードを見かけてもびっくりしないでください。(私が初めてそのようなコードを見かけた時、びっくりして頭を抱えましたが……)
このことは、あまり参考書では紹介されないポイントです。
関連記事
~プログラミングを勉強してみませんか?~
TechAcademy [テックアカデミー] は無料の体験講座が用意されているので、気軽に体験できます。
※私(サイト主)も無料体験講座を実際に受けてみました(→感想)