演習 - メソッドから数値を返す
- 10 分
多くの場合は、メソッドから数値を返し、その結果を他のタスクに使用する必要があると考えられます。 この簡単な演習では、int および double データ型を返す方法、それらの戻り値をキャプチャする方法について説明します。
整数を返すメソッドを作成する
あなたはベトナムを訪れることになり、通貨を変換する簡単なプログラムを作成する必要があるとします。 現在の為替レートは 1 USD = 23500 VND であると想定できます。 このタスクでは、USD を VND に変換するメソッドを記述します。
Visual Studio Code エディターで、前の演習から既存のコードを削除します。
Visual Studio Code エディターに次のコードを入力します。
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); int UsdToVnd(double usd) { }この手順では、USD 値と VND 値を格納する 2 つの変数を初期化します。
vndを、メソッドUsdToVndの結果に初期化することに注意してください。 VND は通常整数で表されるため、このメソッドからは整数値が返されます。 通貨換算の結果を表示するために、Console.WriteLineを使用します。次に、変換を実行するコードを追加します。
UsdToVndメソッドを次のコードで更新します。int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); }返される結果からキャストを省略すると、次のエラーが表示されます。
Cannot implicitly convert type 'double' to 'int'.コンパイラでは返される値を、メソッド シグネチャ内で指定されたデータ型と一致するようにキャストすることが試みられるために、それが発生するのです。 ただし、変換の結果としてデータ損失が発生しない場合に限り、暗黙的なキャストを使用することができます。 戻り値は常にメソッド シグネチャ内で指定されたデータ型と一致する必要があります。そのため、この場合は結果をキャストすることが求められます。
必要に応じて、Visual Studio Code の統合ターミナル パネルを開きます。
ターミナル コマンド プロンプトで、「dotnet run」と入力し、実際の出力を次のように比較します。
$23.73 USD = $557655 VND自分のコードによって表示される結果が想定外である場合は、コードを確認し、エラーを見つけて更新する必要があります。 コードをもう一度実行して、問題が解決しているどうかを確認します。 期待する結果がコードによって生成されるまで、コードの更新と実行を続けます。
double を返すメソッドを作成する
次に、VND を USD に変換するメソッドを作成します。
UsdToVndメソッドの末尾に新しい空白のコード行を作成します。次のコードを入力します。
double VndToUsd(int vnd) { }VndToUsdメソッドを次のコードで更新します。double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }この場合、
rateをdoubleにする必要があります。そうしないと、コンパイラでは整数除算を使用し、切り捨てられたint値を返します。 USD は 10 進数で表す必要があります。rateを、intではなくdoubleに設定すると、コンパイラにエラーが表示されないことがわかります。 このような結果になる理由は、vnd / rate値がメソッド シグネチャ内で指定されたdoubleデータ型に暗黙的にキャストされることにあります。 数値を返すメソッドを作成する場合は、そのようなメソッドによって実行される操作でのデータ型を考慮することが重要です。Console.WriteLineの呼び出しを見つけて、新しい空白のコード行を追加します。 今度は、次のコードを入力して新しいメソッドを呼び出して、その出力をプリントします。Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD");
作業を確認
このタスクでは、統合ターミナルからアプリケーションを実行し、入力したコードが正しく動作していることを確認します。 それでは、始めましょう。
入力したコードを次のコードと比較して、正しいことを確認します。
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD"); int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); } double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }Ctrl + S キーを使用するか、Visual Studio Code の [ファイル] メニューを使用して、作業内容を保存します。
必要に応じて、Visual Studio Code の統合ターミナル パネルを開きます。
[エクスプローラー] パネルで、TestProject フォルダーの場所にあるターミナルを開くには、[TestProject] を右クリックし、[統合ターミナルで開く] を選択します。
ターミナルのコマンド プロンプトで、「dotnet run」と入力します
コードによって次の出力が生成されることを確認します。
$23.73 USD = $557655 VND $557655 VND = $23.73 USDコードによって表示される結果が異なる場合は、コードを確認し、エラーを見つけて更新する必要があります。 コードをもう一度実行して、問題が解決しているどうかを確認します。 期待する結果がコードによって生成されるまで、コードの更新と実行を続けます。